muagqa 1.6.0 → 1.6.4

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "muagqa",
3
- "version": "1.6.0",
3
+ "version": "1.6.4",
4
4
  "description": "MuagQA CLI — Test case runner with one-time session token and Playwright recorder",
5
5
  "author": "Mary C.N. Enwezor",
6
6
  "license": "MIT",
@@ -1,32 +1,39 @@
1
- import fetch from "node-fetch";
2
- import fs from "fs";
3
-
4
- export async function generateTemplateFromDashboard(token) {
5
- console.log("🔍 Fetching template test cases");
6
-
7
- const response = await fetch("https://muagqa.com/api/template/generate", {
8
- method: "POST",
9
- headers: { "Content-Type": "application/json" },
10
- body: JSON.stringify({
11
- token
12
- })
13
- });
14
-
15
- const data = await response.json();
16
-
17
- if (!data.success) {
18
- console.error(" ERROR:", data.error);
19
- process.exit(1);
20
- }
21
-
22
- const output = data.testCode;
23
-
24
- // Save file locally
25
- fs.writeFileSync("generated-template.spec.js", output);
26
-
27
- console.log(" Smart test template generated:");
28
- console.log("==============================");
29
- console.log(output);
30
- console.log("==============================");
31
- console.log("File saved as: generated-template.spec.js");
32
- }
1
+ import fetch from "node-fetch";
2
+ import fs from "fs";
3
+
4
+ export async function generateTemplateFromDashboard({ token, flow, url }) {
5
+ console.log("Fetching template test cases...");
6
+
7
+ const response = await fetch("https://muagqa.com/api/template/generate", {
8
+ method: "POST",
9
+ headers: { "Content-Type": "application/json" },
10
+ body: JSON.stringify({ token, flow, url })
11
+ });
12
+
13
+ let data;
14
+ try {
15
+ data = await response.json();
16
+ } catch (err) {
17
+ const raw = await response.text().catch(() => "");
18
+ console.error("Failed to parse template response.");
19
+ console.error(`Status: ${response.status} ${response.statusText}`);
20
+ if (raw) {
21
+ console.error("Body:", raw);
22
+ }
23
+ process.exit(1);
24
+ }
25
+
26
+ if (!data.success) {
27
+ console.error("ERROR:", data.error || "Unknown error.");
28
+ process.exit(1);
29
+ }
30
+
31
+ const output = data.testCode;
32
+ fs.writeFileSync("generated-template.spec.js", output);
33
+
34
+ console.log("Smart test template generated:");
35
+ console.log("==============================");
36
+ console.log(output);
37
+ console.log("==============================");
38
+ console.log("File saved as: generated-template.spec.js");
39
+ }
@@ -1,5 +1,6 @@
1
1
  import inquirer from "inquirer";
2
2
  import { generateTemplateFromDashboard } from "./generateTemplate.js";
3
+ import { validateSessionToken } from "./api.js";
3
4
 
4
5
  export async function generateTemplateTests(sessionToken) {
5
6
  let token = sessionToken || process.env.MUAGQA_SESSION;
@@ -16,5 +17,29 @@ export async function generateTemplateTests(sessionToken) {
16
17
  token = answer.token;
17
18
  }
18
19
 
19
- await generateTemplateFromDashboard(token);
20
+ const result = await validateSessionToken(token);
21
+ if (!result.success) {
22
+ console.error("Unable to fetch test flow metadata — invalid token?");
23
+ return;
24
+ }
25
+
26
+ const flow =
27
+ result.flow ||
28
+ result.flowType ||
29
+ result.flow_type ||
30
+ result.templateFlow ||
31
+ "";
32
+ const url =
33
+ result.url ||
34
+ result.startUrl ||
35
+ result.start_url ||
36
+ result.baseUrl ||
37
+ "";
38
+
39
+ if (!flow) {
40
+ console.error("Missing flow type for this token. Update the API to return flow.");
41
+ return;
42
+ }
43
+
44
+ await generateTemplateFromDashboard({ token, flow, url });
20
45
  }