From 6eb69524f66b31102d10babddfefa50c17add510 Mon Sep 17 00:00:00 2001 From: Ani Shakhkyan Date: Sat, 19 Jul 2025 23:45:17 +0400 Subject: [PATCH 1/2] fix: update get_suites response type to match latest TestRail API --- README.md | 2 +- src/TestRail.ts | 4 ++-- src/groups/suites.ts | 4 ++-- src/payload/response/Suites.ts | 12 ++++++++++++ src/payload/response/index.ts | 1 + 5 files changed, 18 insertions(+), 5 deletions(-) create mode 100644 src/payload/response/Suites.ts diff --git a/README.md b/README.md index c222a9a..7d81ce5 100644 --- a/README.md +++ b/README.md @@ -464,7 +464,7 @@ getSuite(suiteId: number): Promise ``` ```typescript -getSuites(projectId: number): Promise +getSuites(projectId: number): Promise ``` ```typescript diff --git a/src/TestRail.ts b/src/TestRail.ts index 39e626f..e38fcfd 100644 --- a/src/TestRail.ts +++ b/src/TestRail.ts @@ -1,7 +1,7 @@ import type { TestRailCtx } from './TestRailCtx'; import { TestRailException } from './TestRailException'; import * as methods from './groups'; -import type { AddAttachment, AddCase, AddCaseField, AddConfig, AddConfigGroup, AddDataset, AddGroup, AddMilestone, AddPlan, AddPlanEntry, AddProject, AddResult, AddResults, AddResultsForCases, AddRun, AddRunToPlanEntry, AddSection, AddSharedStep, AddSuite, AddUser, AddVariable, AttachmentForCase, AttachmentForPlan, AttachmentForPlanEntry, AttachmentForRun, AttachmentForTest, Case, CaseField, CaseFilters, CaseHistory, CaseStatus, CaseType, Config, ConfigItem, CopyCasesToSection, CreatedAttachment, Dataset, DeleteCases, DeleteSharedStep, Group, Milestone, MilestoneFilters, MoveCasesToSection, MoveSection, Pagination, Plan, PlanEntry, PlanFilters, PlanItem, Priority, Project, ProjectFilters, Report, ReportUrls, Request, Response, Result, ResultField, ResultFilters, ResultForRunFilters, Role, Run, RunFilters, Section, SectionFilters, SharedStep, SharedStepFilters, SharedStepHistory, Status, Suite, Template, Test, TestFilters, UpdateCase, UpdateCases, UpdateConfig, UpdateConfigGroup, UpdateMilestone, UpdatePlan, UpdatePlanEntry, UpdateProject, UpdateRun, UpdateRunInPlanEntry, UpdateSection, UpdateSharedStep, UpdateSuite, User, UserFilters, Variable } from './payload'; +import type { AddAttachment, AddCase, AddCaseField, AddConfig, AddConfigGroup, AddDataset, AddGroup, AddMilestone, AddPlan, AddPlanEntry, AddProject, AddResult, AddResults, AddResultsForCases, AddRun, AddRunToPlanEntry, AddSection, AddSharedStep, AddSuite, AddUser, AddVariable, AttachmentForCase, AttachmentForPlan, AttachmentForPlanEntry, AttachmentForRun, AttachmentForTest, Case, CaseField, CaseFilters, CaseHistory, CaseStatus, CaseType, Config, ConfigItem, CopyCasesToSection, CreatedAttachment, Dataset, DeleteCases, DeleteSharedStep, Group, Milestone, MilestoneFilters, MoveCasesToSection, MoveSection, Pagination, Plan, PlanEntry, PlanFilters, PlanItem, Priority, Project, ProjectFilters, Report, ReportUrls, Request, Response, Result, ResultField, ResultFilters, ResultForRunFilters, Role, Run, RunFilters, Section, SectionFilters, SharedStep, SharedStepFilters, SharedStepHistory, Status, Suite, Suites, Template, Test, TestFilters, UpdateCase, UpdateCases, UpdateConfig, UpdateConfigGroup, UpdateMilestone, UpdatePlan, UpdatePlanEntry, UpdateProject, UpdateRun, UpdateRunInPlanEntry, UpdateSection, UpdateSharedStep, UpdateSuite, User, UserFilters, Variable } from './payload'; export * from './payload'; export type { Request as Payload, Response as Model }; @@ -420,7 +420,7 @@ export default class TestRail { return this.withCtx(options, (ctx) => methods.getSuite(ctx, suiteId)); } - getSuites(projectId: number, options?: Signal): Promise { + getSuites(projectId: number, options?: Signal): Promise { return this.withCtx(options, (ctx) => methods.getSuites(ctx, projectId)); } diff --git a/src/groups/suites.ts b/src/groups/suites.ts index 055d9ba..1105157 100644 --- a/src/groups/suites.ts +++ b/src/groups/suites.ts @@ -1,12 +1,12 @@ import type { TestRailCtx } from '../TestRailCtx'; import { _api } from '../internal/request'; -import type { AddSuite, Suite, UpdateSuite } from '../payload'; +import type { AddSuite, Suite, Suites, 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 { +export function getSuites(ctx: TestRailCtx, projectId: number): Promise { return _api(ctx, 'GET', `get_suites/${projectId}`); } diff --git a/src/payload/response/Suites.ts b/src/payload/response/Suites.ts new file mode 100644 index 0000000..9ef8661 --- /dev/null +++ b/src/payload/response/Suites.ts @@ -0,0 +1,12 @@ +import { Suite } from "./Suite"; + +export interface Suites extends Record { + "offset": number, + "limit": number, + "size": number, + "_links": { + "next": string, + "prev": unknown + }, + "suites": Suite[] +} \ No newline at end of file diff --git a/src/payload/response/index.ts b/src/payload/response/index.ts index 4060631..36adb27 100644 --- a/src/payload/response/index.ts +++ b/src/payload/response/index.ts @@ -35,6 +35,7 @@ export * from './SharedStep'; export * from './SharedStepHistory'; export * from './Status'; export * from './Suite'; +export * from './Suites'; export * from './Template'; export * from './Test'; export * from './User'; From 48ababf981d891a25e708d6ab16c72cda8a331c0 Mon Sep 17 00:00:00 2001 From: Ani Shakhkyan Date: Sat, 19 Jul 2025 23:55:29 +0400 Subject: [PATCH 2/2] Refactored --- src/payload/response/Suites.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/payload/response/Suites.ts b/src/payload/response/Suites.ts index 9ef8661..80a639f 100644 --- a/src/payload/response/Suites.ts +++ b/src/payload/response/Suites.ts @@ -9,4 +9,4 @@ export interface Suites extends Record { "prev": unknown }, "suites": Suite[] -} \ No newline at end of file +}