jui-tools-mcp-server 2.7.0 → 2.10.0
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 +2 -1
- package/data/platform_semantics.json +70 -0
- package/data/screen_identity.json +1 -1
- package/dist/index.js +8 -2
- package/dist/spec_loader.d.ts +5 -0
- package/dist/spec_loader.js +55 -0
- package/dist/tools/context/list_screen_specs.js +24 -5
- package/dist/tools/context/search_specs.d.ts +3 -0
- package/dist/tools/context/search_specs.js +113 -0
- package/dist/tools/doc/doc_validate_spec.js +1 -1
- package/dist/tools/spec/get_platform_rules.d.ts +3 -0
- package/dist/tools/spec/get_platform_rules.js +18 -0
- package/dist/tools/test/test_generate_branch_tests.d.ts +3 -0
- package/dist/tools/test/test_generate_branch_tests.js +76 -0
- package/package.json +1 -1
- package/scripts/fetch-manifest.js +7 -0
- package/src/index.ts +8 -2
- package/src/spec_loader.ts +80 -0
- package/src/tools/context/list_screen_specs.ts +23 -5
- package/src/tools/context/search_specs.ts +124 -0
- package/src/tools/doc/doc_validate_spec.ts +1 -1
- package/src/tools/spec/get_platform_rules.ts +26 -0
- package/src/tools/test/test_generate_branch_tests.ts +72 -0
- package/tests/snapshot_completeness.test.ts +1 -0
- package/tests/spec_loader.test.ts +55 -0
- package/tests/tools_context.test.ts +114 -0
- package/tests/tools_test.test.ts +66 -1
package/tests/tools_test.test.ts
CHANGED
|
@@ -14,6 +14,7 @@ import { ServerConfig } from "../src/config.js";
|
|
|
14
14
|
import { register as registerTestValidate } from "../src/tools/test/test_validate.js";
|
|
15
15
|
import { register as registerTestGenerateScreen } from "../src/tools/test/test_generate_screen.js";
|
|
16
16
|
import { register as registerTestGenerateFlow } from "../src/tools/test/test_generate_flow.js";
|
|
17
|
+
import { register as registerTestGenerateBranchTests } from "../src/tools/test/test_generate_branch_tests.js";
|
|
17
18
|
import { register as registerTestGenerateDescription } from "../src/tools/test/test_generate_description.js";
|
|
18
19
|
import { register as registerTestReport } from "../src/tools/test/test_report.js";
|
|
19
20
|
import { register as registerTestMockGenerate } from "../src/tools/test/test_mock_generate.js";
|
|
@@ -65,6 +66,7 @@ beforeEach(() => {
|
|
|
65
66
|
registerTestValidate(harness.server, config);
|
|
66
67
|
registerTestGenerateScreen(harness.server, config);
|
|
67
68
|
registerTestGenerateFlow(harness.server, config);
|
|
69
|
+
registerTestGenerateBranchTests(harness.server, config);
|
|
68
70
|
registerTestGenerateDescription(harness.server, config);
|
|
69
71
|
registerTestReport(harness.server, config);
|
|
70
72
|
registerTestMockGenerate(harness.server, config);
|
|
@@ -86,11 +88,12 @@ function failWithCode(code: number, stdout = "", stderr = ""): void {
|
|
|
86
88
|
}
|
|
87
89
|
|
|
88
90
|
describe("Group F registration", () => {
|
|
89
|
-
it("registers all
|
|
91
|
+
it("registers all 9 jsonui-test tools", () => {
|
|
90
92
|
expect([...harness.tools.keys()].sort()).toEqual(
|
|
91
93
|
[
|
|
92
94
|
"test_artifacts_pull",
|
|
93
95
|
"test_artifacts_status",
|
|
96
|
+
"test_generate_branch_tests",
|
|
94
97
|
"test_generate_description",
|
|
95
98
|
"test_generate_flow",
|
|
96
99
|
"test_generate_screen",
|
|
@@ -102,6 +105,68 @@ describe("Group F registration", () => {
|
|
|
102
105
|
});
|
|
103
106
|
});
|
|
104
107
|
|
|
108
|
+
describe("test_generate_branch_tests", () => {
|
|
109
|
+
it("builds the base argv and runs in the project dir", async () => {
|
|
110
|
+
nextResponse = { stdout: "generated 5 branch(es)" };
|
|
111
|
+
await harness.call("test_generate_branch_tests", {
|
|
112
|
+
project_dir: projectDir,
|
|
113
|
+
screen: "booking_confirm",
|
|
114
|
+
});
|
|
115
|
+
expect(recorded).toEqual([
|
|
116
|
+
expect.objectContaining({
|
|
117
|
+
command: "jsonui-test",
|
|
118
|
+
args: ["generate", "branch-tests", "booking_confirm"],
|
|
119
|
+
options: expect.objectContaining({ cwd: projectDir }),
|
|
120
|
+
}),
|
|
121
|
+
]);
|
|
122
|
+
});
|
|
123
|
+
|
|
124
|
+
it("maps every optional flag", async () => {
|
|
125
|
+
nextResponse = { stdout: "ok" };
|
|
126
|
+
await harness.call("test_generate_branch_tests", {
|
|
127
|
+
project_dir: projectDir,
|
|
128
|
+
screen: "bottle_detail",
|
|
129
|
+
platform: "android",
|
|
130
|
+
package: "com.example.app",
|
|
131
|
+
module: "AppModule",
|
|
132
|
+
spec: "docs/screens/json/bottle_detail.spec.json",
|
|
133
|
+
out_dir: "app/src/test/java",
|
|
134
|
+
harness_dir: "app/src/test/java",
|
|
135
|
+
mocks_dir: "tests/mocks",
|
|
136
|
+
});
|
|
137
|
+
expect(recorded[0].args).toEqual([
|
|
138
|
+
"generate",
|
|
139
|
+
"branch-tests",
|
|
140
|
+
"bottle_detail",
|
|
141
|
+
"--platform",
|
|
142
|
+
"android",
|
|
143
|
+
"--package",
|
|
144
|
+
"com.example.app",
|
|
145
|
+
"--module",
|
|
146
|
+
"AppModule",
|
|
147
|
+
"--spec",
|
|
148
|
+
"docs/screens/json/bottle_detail.spec.json",
|
|
149
|
+
"--out-dir",
|
|
150
|
+
"app/src/test/java",
|
|
151
|
+
"--harness-dir",
|
|
152
|
+
"app/src/test/java",
|
|
153
|
+
"--mocks-dir",
|
|
154
|
+
"tests/mocks",
|
|
155
|
+
]);
|
|
156
|
+
});
|
|
157
|
+
|
|
158
|
+
it("surfaces a generation failure instead of reporting success", async () => {
|
|
159
|
+
// Unbindable declarations are hard errors in the generator, and the
|
|
160
|
+
// wrapper must not flatten them into a bland OK.
|
|
161
|
+
failWithCode(1, "", "branches[0].when.arg.status: no parameter");
|
|
162
|
+
const text = await harness.call("test_generate_branch_tests", {
|
|
163
|
+
project_dir: projectDir,
|
|
164
|
+
screen: "home",
|
|
165
|
+
});
|
|
166
|
+
expect(text).toContain("no parameter");
|
|
167
|
+
});
|
|
168
|
+
});
|
|
169
|
+
|
|
105
170
|
describe("test_validate", () => {
|
|
106
171
|
it("builds the base argv and runs in the project dir", async () => {
|
|
107
172
|
nextResponse = { stdout: "All valid" };
|