wopee-mcp 1.6.1 → 1.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -100,7 +100,7 @@ Generates a specific file(artifact) for the selected suite.
100
100
 
101
101
  - **Parameters:**
102
102
  - `suiteUuid` - The UUID of the suite
103
- - `fileType` - `"APP_CONTEXT" | "GENERAL_USER_STORIES" | "USER_STORIES" | "TEST_CASES"`
103
+ - `fileType` - `"APP_CONTEXT" | "GENERAL_USER_STORIES" | "USER_STORIES_WITH_TEST_CASES" | "TEST_CASES" | "TEST_CASE_STEPS" | "REUSABLE_TEST_CASES" | "REUSABLE_TEST_CASE_STEPS"`
104
104
  - **Returns:** Generated output in case of successful generation.
105
105
 
106
106
  **Example Usage:**
@@ -27,6 +27,7 @@ export const createGenerateAIDataInput = (input) => {
27
27
  continueGeneration: false,
28
28
  extraPrompt: null,
29
29
  selectedUserStories: null,
30
+ selectedTestCases: null,
30
31
  sourceSuiteUuid: null,
31
32
  };
32
33
  };
@@ -38,6 +38,11 @@ export const DispatchAnalysis = `
38
38
  status
39
39
  isGenerated
40
40
  }
41
+ reusableTestCases {
42
+ status
43
+ isGenerated
44
+ }
45
+ testCaseSteps
41
46
  }
42
47
  }
43
48
  }
@@ -76,6 +81,12 @@ export const FetchAnalysisSuites = `
76
81
  isGenerated
77
82
  status
78
83
  }
84
+ reusableTestCases {
85
+ uuid
86
+ isGenerated
87
+ status
88
+ }
89
+ testCaseSteps
79
90
  }
80
91
  }
81
92
  }
@@ -94,14 +105,29 @@ export const GenerateGeneralUserStories = `
94
105
  generateGeneralUserStories(input: $input)
95
106
  }
96
107
  `;
108
+ export const GenerateUserStoriesWithTestCases = `
109
+ mutation GenerateUserStoriesWithTestCases($input: GenerateAIDataInput!) {
110
+ generateUserStories(input: $input)
111
+ }
112
+ `;
97
113
  export const GenerateTestCases = `
98
114
  mutation GenerateTestCases($input: GenerateAIDataInput!) {
99
115
  generateTestCases(input: $input)
100
116
  }
101
117
  `;
102
- export const GenerateUserStories = `
103
- mutation GenerateUserStories($input: GenerateAIDataInput!) {
104
- generateUserStories(input: $input)
118
+ export const GenerateTestCaseSteps = `
119
+ mutation GenerateTestCaseSteps($input: GenerateAIDataInput!) {
120
+ generateTestCaseSteps(input: $input)
121
+ }
122
+ `;
123
+ export const GenerateReusableTestCases = `
124
+ mutation GenerateReusableTestCases($input: GenerateAIDataInput!) {
125
+ generateReusableTestCases(input: $input)
126
+ }
127
+ `;
128
+ export const GenerateReusableTestCaseSteps = `
129
+ mutation GenerateReusableTestCaseSteps($input: GenerateAIDataInput!) {
130
+ generateReusableTestCaseSteps(input: $input)
105
131
  }
106
132
  `;
107
133
  export const UpdateFile = `
@@ -1,6 +1,6 @@
1
1
  import { z } from "zod";
2
2
  import { FetchFileInputSchema, UpdateFileInputSchema, GenerateAIDataInputSchema, } from "./schemas.js";
3
- import { FetchFile, UpdateFile, GenerateTestCases, GenerateAppContext, GenerateUserStories, GenerateGeneralUserStories, } from "./gql-queries.js";
3
+ import { FetchFile, UpdateFile, GenerateAppContext, GenerateGeneralUserStories, GenerateUserStoriesWithTestCases, GenerateTestCases, GenerateReusableTestCases, GenerateReusableTestCaseSteps, GenerateTestCaseSteps, } from "./gql-queries.js";
4
4
  import { createFetchFileInput, createUpdateFileInput, createGenerateAIDataInput, } from "./factories.js";
5
5
  import { Bucket, FileType } from "./types.js";
6
6
  import { requestClient } from "../../utils/requestClient.js";
@@ -39,13 +39,13 @@ function parseFileType(type) {
39
39
  outputType: "markdown",
40
40
  description: "general user stories markdown file for selected suite",
41
41
  };
42
- case FileType.USER_STORIES:
42
+ case FileType.USER_STORIES_WITH_TEST_CASES:
43
43
  return {
44
- query: GenerateUserStories,
45
- dataKey: "generateUserStories",
44
+ query: GenerateUserStoriesWithTestCases,
45
+ dataKey: "generateUserStoriesWithTestCases",
46
46
  bucket: Bucket.USER_STORIES,
47
47
  outputType: "json",
48
- description: "user stories JSON file for selected suite",
48
+ description: "generate user stories with test cases without test case steps JSON file for selected suite",
49
49
  };
50
50
  case FileType.TEST_CASES:
51
51
  return {
@@ -53,7 +53,31 @@ function parseFileType(type) {
53
53
  dataKey: "generateTestCases",
54
54
  bucket: Bucket.USER_STORIES,
55
55
  outputType: "json",
56
- description: "test cases for selected suite",
56
+ description: "generate test cases without test case steps in user stories for selected suite",
57
+ };
58
+ case FileType.REUSABLE_TEST_CASES:
59
+ return {
60
+ query: GenerateReusableTestCases,
61
+ dataKey: "generateReusableTestCases",
62
+ bucket: Bucket.USER_STORIES,
63
+ outputType: "json",
64
+ description: "generate reusable blocks without test case steps in user stories for selected suite",
65
+ };
66
+ case FileType.REUSABLE_TEST_CASE_STEPS:
67
+ return {
68
+ query: GenerateReusableTestCaseSteps,
69
+ dataKey: "generateReusableTestCaseSteps",
70
+ bucket: Bucket.USER_STORIES,
71
+ outputType: "json",
72
+ description: "generate steps for reusable blocks in user stories for selected suite",
73
+ };
74
+ case FileType.TEST_CASE_STEPS:
75
+ return {
76
+ query: GenerateTestCaseSteps,
77
+ dataKey: "generateTestCaseSteps",
78
+ bucket: Bucket.USER_STORIES,
79
+ outputType: "json",
80
+ description: "generate test case steps for test cases in user stories for selected suite",
57
81
  };
58
82
  default:
59
83
  return {
@@ -27,7 +27,8 @@ export const GenerateAIDataInputSchema = z.object({
27
27
  suiteUuid: z.string().min(1, "Suite UUID is required"),
28
28
  extraPrompt: z.string().nullish(),
29
29
  sourceSuiteUuid: z.string().nullish(),
30
- selectedUserStories: z.array(z.string()).nullish(),
30
+ selectedUserStories: z.array(z.string()).nullish(), // ["US001", "US002", "US003"]
31
+ selectedTestCases: z.array(z.string()).nullish(), // ["US001:TC001", "US003:TC002", "US015:TC033"]
31
32
  suiteAnalysisConfig: SuiteAnalysisConfigSchema,
32
33
  continueGeneration: z.boolean().nullish().default(false),
33
34
  });
@@ -20,8 +20,11 @@ export var FileType;
20
20
  (function (FileType) {
21
21
  FileType["APP_CONTEXT"] = "APP_CONTEXT";
22
22
  FileType["GENERAL_USER_STORIES"] = "GENERAL_USER_STORIES";
23
- FileType["USER_STORIES"] = "USER_STORIES";
23
+ FileType["USER_STORIES_WITH_TEST_CASES"] = "USER_STORIES_WITH_TEST_CASES";
24
24
  FileType["TEST_CASES"] = "TEST_CASES";
25
+ FileType["TEST_CASE_STEPS"] = "TEST_CASE_STEPS";
26
+ FileType["REUSABLE_TEST_CASES"] = "REUSABLE_TEST_CASES";
27
+ FileType["REUSABLE_TEST_CASE_STEPS"] = "REUSABLE_TEST_CASE_STEPS";
25
28
  })(FileType || (FileType = {}));
26
29
  export var SuiteType;
27
30
  (function (SuiteType) {
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "bin": {
5
5
  "wopee-mcp": "./build/index.js"
6
6
  },
7
- "version": "1.6.1",
7
+ "version": "1.7.1",
8
8
  "description": "Wopee.io MCP server",
9
9
  "main": "./build/index.js",
10
10
  "scripts": {