86 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			86 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| package ak
 | |
| 
 | |
| import (
 | |
| 	"errors"
 | |
| 	"net/http"
 | |
| 	"testing"
 | |
| 
 | |
| 	"github.com/stretchr/testify/assert"
 | |
| 	"goauthentik.io/api/v3"
 | |
| )
 | |
| 
 | |
| type fakeAPIType struct{}
 | |
| 
 | |
| type fakeAPIResponse struct {
 | |
| 	results    []fakeAPIType
 | |
| 	pagination api.Pagination
 | |
| }
 | |
| 
 | |
| func (fapi *fakeAPIResponse) GetResults() []fakeAPIType     { return fapi.results }
 | |
| func (fapi *fakeAPIResponse) GetPagination() api.Pagination { return fapi.pagination }
 | |
| 
 | |
| type fakeAPIRequest struct {
 | |
| 	res  *fakeAPIResponse
 | |
| 	http *http.Response
 | |
| 	err  error
 | |
| }
 | |
| 
 | |
| func (fapi *fakeAPIRequest) Page(page int32) *fakeAPIRequest     { return fapi }
 | |
| func (fapi *fakeAPIRequest) PageSize(size int32) *fakeAPIRequest { return fapi }
 | |
| func (fapi *fakeAPIRequest) Execute() (*fakeAPIResponse, *http.Response, error) {
 | |
| 	return fapi.res, fapi.http, fapi.err
 | |
| }
 | |
| 
 | |
| func Test_Simple(t *testing.T) {
 | |
| 	req := &fakeAPIRequest{
 | |
| 		res: &fakeAPIResponse{
 | |
| 			results: []fakeAPIType{
 | |
| 				{},
 | |
| 			},
 | |
| 			pagination: api.Pagination{
 | |
| 				TotalPages: 1,
 | |
| 			},
 | |
| 		},
 | |
| 	}
 | |
| 	res, err := Paginator(req, PaginatorOptions{})
 | |
| 	assert.NoError(t, err)
 | |
| 	assert.Len(t, res, 1)
 | |
| }
 | |
| 
 | |
| func Test_BadRequest(t *testing.T) {
 | |
| 	req := &fakeAPIRequest{
 | |
| 		http: &http.Response{
 | |
| 			StatusCode: 400,
 | |
| 		},
 | |
| 		err: errors.New("foo"),
 | |
| 	}
 | |
| 	res, err := Paginator(req, PaginatorOptions{})
 | |
| 	assert.Error(t, err)
 | |
| 	assert.Equal(t, []fakeAPIType{}, res)
 | |
| }
 | |
| 
 | |
| // func Test_PaginatorCompile(t *testing.T) {
 | |
| // 	req := api.ApiCoreUsersListRequest{}
 | |
| // 	Paginator(req, PaginatorOptions{
 | |
| // 		PageSize: 100,
 | |
| // 	})
 | |
| // }
 | |
| 
 | |
| // func Test_PaginatorCompileExplicit(t *testing.T) {
 | |
| // 	req := api.ApiCoreUsersListRequest{}
 | |
| // 	Paginator[
 | |
| // 		api.User,
 | |
| // 		api.ApiCoreUsersListRequest,
 | |
| // 		*api.PaginatedUserList,
 | |
| // 	](req, PaginatorOptions{
 | |
| // 		PageSize: 100,
 | |
| // 	})
 | |
| // }
 | |
| 
 | |
| // func Test_PaginatorCompileOther(t *testing.T) {
 | |
| // 	req := api.ApiOutpostsProxyListRequest{}
 | |
| // 	Paginator(req, PaginatorOptions{
 | |
| // 		PageSize: 100,
 | |
| // 	})
 | |
| // }
 | 
