diff --git a/src/groups/suites.ts b/src/groups/suites.ts index 055d9ba..7c054a6 100644 --- a/src/groups/suites.ts +++ b/src/groups/suites.ts @@ -1,13 +1,16 @@ import type { TestRailCtx } from '../TestRailCtx'; +import { pagination } from '../internal/pagination'; import { _api } from '../internal/request'; -import type { AddSuite, Suite, UpdateSuite } from '../payload'; +import type { AddSuite, Pagination, Suite, UpdateSuite } from '../payload'; export function getSuite(ctx: TestRailCtx, suiteId: number): Promise { return _api(ctx, 'GET', `get_suite/${suiteId}`); } -export function getSuites(ctx: TestRailCtx, projectId: number): Promise { - return _api(ctx, 'GET', `get_suites/${projectId}`); +export function getSuites(ctx: TestRailCtx, projectId: number, filters?: Pagination): Promise { + return pagination('suites', filters, (filters) => { + return _api(ctx, 'GET', `get_suites/${projectId}`, { query: filters }); + }); } export function addSuite(ctx: TestRailCtx, projectId: number, payload: AddSuite): Promise { diff --git a/src/groups/users.ts b/src/groups/users.ts index fa2bbf0..f832f24 100644 --- a/src/groups/users.ts +++ b/src/groups/users.ts @@ -1,4 +1,5 @@ import type { TestRailCtx } from '../TestRailCtx'; +import { pagination } from '../internal/pagination'; import { _api } from '../internal/request'; import type { AddUser, User, UserFilters } from '../payload'; @@ -15,7 +16,9 @@ export function getUserByEmail(ctx: TestRailCtx, email: string): Promise { } export function getUsers(ctx: TestRailCtx, filters?: UserFilters): Promise { - return _api(ctx, 'GET', 'get_users', { query: filters }); + return pagination('users', filters, (filters) => { + return _api(ctx, 'GET', 'get_users', { query: filters }); + }); } export function addUser(ctx: TestRailCtx, payload: AddUser): Promise { diff --git a/src/payload/request/UserFilters.ts b/src/payload/request/UserFilters.ts index 2016a71..0b799b5 100644 --- a/src/payload/request/UserFilters.ts +++ b/src/payload/request/UserFilters.ts @@ -1,3 +1,5 @@ -export interface UserFilters extends Record { +import type { Pagination } from "./Pagination"; + +export interface UserFilters extends Pagination, Record { project_id?: number; } diff --git a/test/suites.ts b/test/suites.ts index 400597d..7d05362 100644 --- a/test/suites.ts +++ b/test/suites.ts @@ -20,7 +20,7 @@ describe('Suites', () => { }); it('get suites', async () => { - on(`get_suites/${projectId}`) + on(`get_suites/${projectId}&limit=250&offset=0`) .reply(OK, suites); await api diff --git a/test/users.ts b/test/users.ts index 81fa48e..83b4897 100644 --- a/test/users.ts +++ b/test/users.ts @@ -38,7 +38,7 @@ describe('Users', () => { }); it('get users', async () => { - on('get_users') + on('get_users&limit=250&offset=0') .reply(OK, users); await api @@ -47,7 +47,7 @@ describe('Users', () => { }); it('get filtered users', async () => { - on(`get_users&${qs(userFilters)}`) + on(`get_users&${qs(userFilters)}&limit=250&offset=0`) .reply(OK, users); await api