@sudobility/testomniac_lib 0.0.93 → 0.0.95

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.
@@ -0,0 +1,3 @@
1
+ import type { TestInteractionResponse } from '@sudobility/testomniac_types';
2
+ export declare function describeInteraction(interaction: Pick<TestInteractionResponse, 'title' | 'startingPath' | 'stepsJson'>): string;
3
+ //# sourceMappingURL=describeInteraction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"describeInteraction.d.ts","sourceRoot":"","sources":["../../../src/business/utils/describeInteraction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAO5E,wBAAgB,mBAAmB,CACjC,WAAW,EAAE,IAAI,CACf,uBAAuB,EACvB,OAAO,GAAG,cAAc,GAAG,WAAW,CACvC,GACA,MAAM,CAkBR"}
@@ -0,0 +1,58 @@
1
+ export function describeInteraction(interaction) {
2
+ const parts = [];
3
+ if (interaction.startingPath) {
4
+ parts.push(`Navigate to ${interaction.startingPath}`);
5
+ }
6
+ const steps = parseSteps(interaction.stepsJson);
7
+ for (const step of steps) {
8
+ const desc = describeStep(step);
9
+ if (desc)
10
+ parts.push(desc);
11
+ }
12
+ if (parts.length === 0) {
13
+ return interaction.title;
14
+ }
15
+ return parts.join(', ');
16
+ }
17
+ function parseSteps(stepsJson) {
18
+ if (!stepsJson)
19
+ return [];
20
+ if (Array.isArray(stepsJson))
21
+ return stepsJson;
22
+ return [];
23
+ }
24
+ function describeStep(step) {
25
+ if (step.description && step.description.length > 5) {
26
+ return step.description;
27
+ }
28
+ const action = step.actionType;
29
+ if (!action)
30
+ return null;
31
+ switch (action) {
32
+ case 'goto':
33
+ return step.path ? `Navigate to ${step.path}` : 'Navigate to page';
34
+ case 'click':
35
+ return step.selector ? `Click on ${step.selector}` : 'Click element';
36
+ case 'fill':
37
+ return step.selector
38
+ ? `Fill in ${step.selector}${step.value ? ` with "${step.value}"` : ''}`
39
+ : 'Fill in field';
40
+ case 'type':
41
+ return step.selector ? `Type in ${step.selector}` : 'Type text';
42
+ case 'hover':
43
+ return step.selector ? `Hover over ${step.selector}` : 'Hover element';
44
+ case 'selectOption':
45
+ return step.selector
46
+ ? `Select option in ${step.selector}`
47
+ : 'Select option';
48
+ case 'check':
49
+ return step.selector ? `Check ${step.selector}` : 'Check checkbox';
50
+ case 'uncheck':
51
+ return step.selector ? `Uncheck ${step.selector}` : 'Uncheck checkbox';
52
+ case 'press':
53
+ return step.value ? `Press ${step.value}` : 'Press key';
54
+ default:
55
+ return step.selector ? `${action} on ${step.selector}` : action;
56
+ }
57
+ }
58
+ //# sourceMappingURL=describeInteraction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"describeInteraction.js","sourceRoot":"","sources":["../../../src/business/utils/describeInteraction.ts"],"names":[],"mappings":"AAOA,MAAM,UAAU,mBAAmB,CACjC,WAGC;IAED,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,IAAI,WAAW,CAAC,YAAY,EAAE,CAAC;QAC7B,KAAK,CAAC,IAAI,CAAC,eAAe,WAAW,CAAC,YAAY,EAAE,CAAC,CAAC;IACxD,CAAC;IAED,MAAM,KAAK,GAAG,UAAU,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IAChD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;QAChC,IAAI,IAAI;YAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,WAAW,CAAC,KAAK,CAAC;IAC3B,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAUD,SAAS,UAAU,CAAC,SAAkB;IACpC,IAAI,CAAC,SAAS;QAAE,OAAO,EAAE,CAAC;IAC1B,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;QAAE,OAAO,SAAS,CAAC;IAC/C,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,YAAY,CAAC,IAAU;IAE9B,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpD,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC;IAC/B,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IAEzB,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,MAAM;YACT,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,kBAAkB,CAAC;QACrE,KAAK,OAAO;YACV,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC;QACvE,KAAK,MAAM;YACT,OAAO,IAAI,CAAC,QAAQ;gBAClB,CAAC,CAAC,WAAW,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;gBACxE,CAAC,CAAC,eAAe,CAAC;QACtB,KAAK,MAAM;YACT,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC;QAClE,KAAK,OAAO;YACV,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,cAAc,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC;QACzE,KAAK,cAAc;YACjB,OAAO,IAAI,CAAC,QAAQ;gBAClB,CAAC,CAAC,oBAAoB,IAAI,CAAC,QAAQ,EAAE;gBACrC,CAAC,CAAC,eAAe,CAAC;QACtB,KAAK,OAAO;YACV,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC;QACrE,KAAK,SAAS;YACZ,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,kBAAkB,CAAC;QACzE,KAAK,OAAO;YACV,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC;QAC1D;YACE,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,MAAM,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;IACpE,CAAC;AACH,CAAC"}
@@ -4,5 +4,6 @@ export { formatMultilineLog } from './formatMultilineLog';
4
4
  export { parseExpertiseTitle } from './parseExpertiseTitle';
5
5
  export { validateEmailDomain } from './validateEmailDomain';
6
6
  export { normalizePath, patternizePath } from './pathUtils';
7
+ export { describeInteraction } from './describeInteraction';
7
8
  export { RECURRENCE_OPTIONS, DAY_OPTIONS, describeScheduleTarget, describeRecurrence, } from './scheduleUtils';
8
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/business/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,4BAA4B,EAAE,MAAM,kBAAkB,CAAC;AAChF,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,EACL,kBAAkB,EAClB,WAAW,EACX,sBAAsB,EACtB,kBAAkB,GACnB,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/business/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,4BAA4B,EAAE,MAAM,kBAAkB,CAAC;AAChF,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EACL,kBAAkB,EAClB,WAAW,EACX,sBAAsB,EACtB,kBAAkB,GACnB,MAAM,iBAAiB,CAAC"}
@@ -4,5 +4,6 @@ export { formatMultilineLog } from './formatMultilineLog';
4
4
  export { parseExpertiseTitle } from './parseExpertiseTitle';
5
5
  export { validateEmailDomain } from './validateEmailDomain';
6
6
  export { normalizePath, patternizePath } from './pathUtils';
7
+ export { describeInteraction } from './describeInteraction';
7
8
  export { RECURRENCE_OPTIONS, DAY_OPTIONS, describeScheduleTarget, describeRecurrence, } from './scheduleUtils';
8
9
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/business/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,4BAA4B,EAAE,MAAM,kBAAkB,CAAC;AAChF,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,EACL,kBAAkB,EAClB,WAAW,EACX,sBAAsB,EACtB,kBAAkB,GACnB,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/business/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,4BAA4B,EAAE,MAAM,kBAAkB,CAAC;AAChF,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EACL,kBAAkB,EAClB,WAAW,EACX,sBAAsB,EACtB,kBAAkB,GACnB,MAAM,iBAAiB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sudobility/testomniac_lib",
3
- "version": "0.0.93",
3
+ "version": "0.0.95",
4
4
  "description": "Testomniac business logic library with Zustand stores",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -42,8 +42,8 @@
42
42
  },
43
43
  "devDependencies": {
44
44
  "@eslint/js": "^9.38.0",
45
- "@sudobility/testomniac_client": "^0.0.88",
46
- "@sudobility/testomniac_types": "^0.0.69",
45
+ "@sudobility/testomniac_client": "^0.0.89",
46
+ "@sudobility/testomniac_types": "^0.0.70",
47
47
  "@sudobility/types": "^1.9.62",
48
48
  "@tanstack/react-query": "^5.90.5",
49
49
  "@testing-library/react": "^16.3.2",