@interactors/core 0.4.0 → 1.0.0-effection.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/dist/cjs/constructor.js +55 -126
- package/dist/cjs/constructor.js.map +1 -1
- package/dist/cjs/converge.js +3 -5
- package/dist/cjs/converge.js.map +1 -1
- package/dist/cjs/format.js +50 -0
- package/dist/cjs/format.js.map +1 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/inspector.js +2 -1
- package/dist/cjs/inspector.js.map +1 -1
- package/dist/cjs/interaction.js +54 -35
- package/dist/cjs/interaction.js.map +1 -1
- package/dist/cjs/match.js +17 -7
- package/dist/cjs/match.js.map +1 -1
- package/dist/cjs/matcher.js +13 -1
- package/dist/cjs/matcher.js.map +1 -1
- package/dist/cjs/matchers/and.js +3 -0
- package/dist/cjs/matchers/and.js.map +1 -1
- package/dist/cjs/matchers/every.js +3 -0
- package/dist/cjs/matchers/every.js.map +1 -1
- package/dist/cjs/matchers/including.js +4 -0
- package/dist/cjs/matchers/including.js.map +1 -1
- package/dist/cjs/matchers/matching.js +4 -0
- package/dist/cjs/matchers/matching.js.map +1 -1
- package/dist/cjs/matchers/not.js +3 -0
- package/dist/cjs/matchers/not.js.map +1 -1
- package/dist/cjs/matchers/or.js +3 -0
- package/dist/cjs/matchers/or.js.map +1 -1
- package/dist/cjs/matchers/some.js +3 -0
- package/dist/cjs/matchers/some.js.map +1 -1
- package/dist/cjs/resolvers.js +98 -0
- package/dist/cjs/resolvers.js.map +1 -0
- package/dist/cjs/serialize.js +48 -0
- package/dist/cjs/serialize.js.map +1 -0
- package/dist/constructor.d.ts +2 -8
- package/dist/constructor.d.ts.map +1 -1
- package/dist/converge.d.ts +2 -1
- package/dist/converge.d.ts.map +1 -1
- package/dist/esm/constructor.js +52 -117
- package/dist/esm/constructor.js.map +1 -1
- package/dist/esm/converge.js +3 -5
- package/dist/esm/converge.js.map +1 -1
- package/dist/esm/{format-table.js → format.js} +19 -1
- package/dist/esm/format.js.map +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/inspector.js +2 -1
- package/dist/esm/inspector.js.map +1 -1
- package/dist/esm/interaction.js +51 -29
- package/dist/esm/interaction.js.map +1 -1
- package/dist/esm/match.js +17 -7
- package/dist/esm/match.js.map +1 -1
- package/dist/esm/matcher.js +11 -0
- package/dist/esm/matcher.js.map +1 -1
- package/dist/esm/matchers/and.js +4 -1
- package/dist/esm/matchers/and.js.map +1 -1
- package/dist/esm/matchers/every.js +4 -1
- package/dist/esm/matchers/every.js.map +1 -1
- package/dist/esm/matchers/including.js +4 -0
- package/dist/esm/matchers/including.js.map +1 -1
- package/dist/esm/matchers/matching.js +4 -0
- package/dist/esm/matchers/matching.js.map +1 -1
- package/dist/esm/matchers/not.js +4 -1
- package/dist/esm/matchers/not.js.map +1 -1
- package/dist/esm/matchers/or.js +4 -1
- package/dist/esm/matchers/or.js.map +1 -1
- package/dist/esm/matchers/some.js +4 -1
- package/dist/esm/matchers/some.js.map +1 -1
- package/dist/esm/resolvers.js +88 -0
- package/dist/esm/resolvers.js.map +1 -0
- package/dist/esm/serialize.js +43 -0
- package/dist/esm/serialize.js.map +1 -0
- package/dist/format.d.ts +10 -0
- package/dist/format.d.ts.map +1 -0
- package/dist/index.d.ts +4 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/inspector.d.ts.map +1 -1
- package/dist/interaction.d.ts +38 -10
- package/dist/interaction.d.ts.map +1 -1
- package/dist/match.d.ts +5 -5
- package/dist/match.d.ts.map +1 -1
- package/dist/matcher.d.ts +2 -0
- package/dist/matcher.d.ts.map +1 -1
- package/dist/matchers/and.d.ts.map +1 -1
- package/dist/matchers/every.d.ts.map +1 -1
- package/dist/matchers/including.d.ts.map +1 -1
- package/dist/matchers/matching.d.ts.map +1 -1
- package/dist/matchers/not.d.ts.map +1 -1
- package/dist/matchers/or.d.ts.map +1 -1
- package/dist/matchers/some.d.ts.map +1 -1
- package/dist/resolvers.d.ts +9 -0
- package/dist/resolvers.d.ts.map +1 -0
- package/dist/serialize.d.ts +13 -0
- package/dist/serialize.d.ts.map +1 -0
- package/dist/specification.d.ts +19 -17
- package/dist/specification.d.ts.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +3 -2
- package/src/constructor.ts +63 -138
- package/src/converge.ts +3 -6
- package/src/format.ts +58 -0
- package/src/index.ts +4 -2
- package/src/inspector.ts +2 -1
- package/src/interaction.ts +96 -36
- package/src/match.ts +23 -15
- package/src/matcher.ts +11 -0
- package/src/matchers/and.ts +4 -1
- package/src/matchers/every.ts +4 -1
- package/src/matchers/including.ts +4 -1
- package/src/matchers/matching.ts +4 -1
- package/src/matchers/not.ts +4 -1
- package/src/matchers/or.ts +4 -1
- package/src/matchers/some.ts +4 -1
- package/src/resolvers.ts +100 -0
- package/src/serialize.ts +54 -0
- package/src/specification.ts +21 -19
- package/CHANGELOG.md +0 -27
- package/dist/cjs/format-table.js +0 -30
- package/dist/cjs/format-table.js.map +0 -1
- package/dist/esm/format-table.js.map +0 -1
- package/dist/format-table.d.ts +0 -6
- package/dist/format-table.d.ts.map +0 -1
- package/src/format-table.ts +0 -34
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { pascalCase } from "change-case";
|
|
2
|
+
import { matcherCode } from "./matcher";
|
|
3
|
+
export function serializeInteractorOptions(options) {
|
|
4
|
+
var _a;
|
|
5
|
+
let locator = matcherCode((_a = options.locator) === null || _a === void 0 ? void 0 : _a.value);
|
|
6
|
+
return {
|
|
7
|
+
interactor: options.name,
|
|
8
|
+
filter: options.filter.all,
|
|
9
|
+
locator,
|
|
10
|
+
code() {
|
|
11
|
+
let interactorName = pascalCase(options.name);
|
|
12
|
+
let filters = Object.entries(options.filter.all).map(([name, filter]) => `"${name}": ${matcherCode(filter)}`);
|
|
13
|
+
return `${interactorName}(${[locator, filters.length && `{ ${filters.join(", ")} }`]
|
|
14
|
+
.filter(Boolean)
|
|
15
|
+
.join(", ")})`;
|
|
16
|
+
},
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
export function serializeInteractionOptions(type, { name, interactor: { options }, args, filters }) {
|
|
20
|
+
let interactor = serializeInteractorOptions(options);
|
|
21
|
+
let ancestors = options.ancestors.map((ancestor) => serializeInteractorOptions(ancestor));
|
|
22
|
+
return {
|
|
23
|
+
...interactor,
|
|
24
|
+
ancestors,
|
|
25
|
+
name,
|
|
26
|
+
type,
|
|
27
|
+
args: filters ? [filters] : args ? args : undefined,
|
|
28
|
+
code() {
|
|
29
|
+
let serializedArgs = "";
|
|
30
|
+
if (filters) {
|
|
31
|
+
let serializedFilters = Object.entries(filters).map(([name, filter]) => `"${name}": ${matcherCode(filter)}`);
|
|
32
|
+
serializedArgs = `{ ${serializedFilters.join(", ")} }`;
|
|
33
|
+
}
|
|
34
|
+
else if (args) {
|
|
35
|
+
serializedArgs = args.map((arg) => JSON.stringify(arg)).join(", ");
|
|
36
|
+
}
|
|
37
|
+
return `${[...ancestors, interactor]
|
|
38
|
+
.map(({ code }, index) => (index == 0 ? code() : `${code()})`))
|
|
39
|
+
.join(".find(")}.${name}(${serializedArgs})`;
|
|
40
|
+
},
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=serialize.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serialize.js","sourceRoot":"","sources":["../../src/serialize.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAGxC,MAAM,UAAU,0BAA0B,CAAC,OAAyC;;IAMlF,IAAI,OAAO,GAAG,WAAW,CAAC,MAAA,OAAO,CAAC,OAAO,0CAAE,KAAK,CAAC,CAAC;IAClD,OAAO;QACL,UAAU,EAAE,OAAO,CAAC,IAAI;QACxB,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG;QAC1B,OAAO;QACP,IAAI;YACF,IAAI,cAAc,GAAG,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC9C,IAAI,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,IAAI,IAAI,MAAM,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAC9G,OAAO,GAAG,cAAc,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;iBACjF,MAAM,CAAC,OAAO,CAAC;iBACf,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;QACnB,CAAC;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,2BAA2B,CACzC,IAAqB,EACrB,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAA4B;IAE1E,IAAI,UAAU,GAAG,0BAA0B,CAAC,OAAO,CAAC,CAAC;IACrD,IAAI,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,0BAA0B,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC1F,OAAO;QACL,GAAG,UAAU;QACb,SAAS;QACT,IAAI;QACJ,IAAI;QACJ,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;QACnD,IAAI;YACF,IAAI,cAAc,GAAG,EAAE,CAAC;YACxB,IAAI,OAAO,EAAE;gBACX,IAAI,iBAAiB,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,IAAI,IAAI,MAAM,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBAC7G,cAAc,GAAG,KAAK,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;aACxD;iBAAM,IAAI,IAAI,EAAE;gBACf,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACpE;YACD,OAAO,GAAG,CAAC,GAAG,SAAS,EAAE,UAAU,CAAC;iBACjC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,CAAC,CAAC;iBAC9D,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,IAAI,cAAc,GAAG,CAAC;QACjD,CAAC;KACF,CAAC;AACJ,CAAC"}
|
package/dist/format.d.ts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Match } from "./match";
|
|
2
|
+
import { InteractorOptions } from "./specification";
|
|
3
|
+
export interface TableOptions {
|
|
4
|
+
headers: string[];
|
|
5
|
+
rows: string[][];
|
|
6
|
+
}
|
|
7
|
+
export declare function formatTable(options: TableOptions): string;
|
|
8
|
+
export declare function formatDescription(options: InteractorOptions<any, any, any>): string;
|
|
9
|
+
export declare function formatMatchesTable(interactor: InteractorOptions<any, any, any>, matches: Match<Element, any>[]): string;
|
|
10
|
+
//# sourceMappingURL=format.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../src/format.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEpD,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC;CAClB;AAYD,wBAAgB,WAAW,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM,CAkBzD;AAUD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,iBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,MAAM,CAGnF;AAED,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,iBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,GAAG,MAAM,CAKvH"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export { Interactor, InteractorConstructor, InteractorSpecification } from './specification';
|
|
2
|
-
export { Interaction,
|
|
1
|
+
export { Interactor, InteractorConstructor, InteractorSpecification, EmptyObject, FilterMethods, ActionMethods } from './specification';
|
|
2
|
+
export { Interaction, ActionInteraction, AssertionInteraction, isInteraction } from './interaction';
|
|
3
3
|
export { createInteractor } from './create-interactor';
|
|
4
4
|
export { createInspector } from './inspector';
|
|
5
5
|
export { isVisible } from 'element-is-visible';
|
|
@@ -12,4 +12,6 @@ export { not } from './matchers/not';
|
|
|
12
12
|
export { some } from './matchers/some';
|
|
13
13
|
export { every } from './matchers/every';
|
|
14
14
|
export { click } from './element/click';
|
|
15
|
+
export { MergeObjects } from './merge-objects';
|
|
16
|
+
export { MaybeMatcher } from './matcher';
|
|
15
17
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACxI,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACpG,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AACrC,OAAO,EAAE,EAAE,EAAE,MAAM,eAAe,CAAC;AACnC,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAEzC,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA"}
|
package/dist/inspector.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inspector.d.ts","sourceRoot":"","sources":["../src/inspector.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"inspector.d.ts","sourceRoot":"","sources":["../src/inspector.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAW,qBAAqB,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE3F,aAAK,UAAU,CAAC,CAAC,SAAS,qBAAqB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,SAAS,qBAAqB,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;AAC1I,aAAK,UAAU,CAAC,CAAC,SAAS,qBAAqB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,SAAS,qBAAqB,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;AAC1I,aAAK,UAAU,CAAC,CAAC,SAAS,qBAAqB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,SAAS,qBAAqB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;AAE1I,MAAM,WAAW,mBAAmB,CAAC,CAAC,SAAS,OAAO,EAAE,EAAE,SAAS,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,CAAE,SAAQ,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,MAAM,CAAC;IAChI,OAAO,EAAE,CAAC,CAAC;IACX,IAAI,CAAC,CAAC,SAAS,qBAAqB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,UAAU,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAA;CACvF;AAED,MAAM,WAAW,SAAS,CAAC,CAAC,SAAS,qBAAqB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IAC5E;;OAEG;IACF,GAAG,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;CAC9E;AAED,wBAAgB,eAAe,CAAC,EAAE,SAAS,qBAAqB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAClF,WAAW,EAAE,EAAE,EACf,aAAa,CAAC,EAAE,OAAO,GACtB,SAAS,CAAC,EAAE,CAAC,CAiBf"}
|
package/dist/interaction.d.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { Operation, Task } from '@effection/core';
|
|
2
|
+
import { InteractionOptions as SerializedInteractionOptions, InteractionType } from '@interactors/globals';
|
|
3
|
+
import type { Interactor, FilterObject, FilterFn, FilterParams } from './specification';
|
|
2
4
|
declare const interactionSymbol: unique symbol;
|
|
3
|
-
export declare function isInteraction(x: unknown): x is Interaction<unknown>;
|
|
5
|
+
export declare function isInteraction(x: unknown): x is Interaction<Element, unknown>;
|
|
4
6
|
/**
|
|
5
7
|
* An interaction represents some type of action or assertion that can be
|
|
6
8
|
* taken on an {@link Interactor}.
|
|
@@ -12,31 +14,57 @@ export declare function isInteraction(x: unknown): x is Interaction<unknown>;
|
|
|
12
14
|
*
|
|
13
15
|
* @typeParam T the return value of the promise that this interaction evaluates to.
|
|
14
16
|
*/
|
|
15
|
-
export interface Interaction<T> extends Promise<T> {
|
|
17
|
+
export interface Interaction<E extends Element, T = void> extends Promise<T> {
|
|
18
|
+
type: InteractionType;
|
|
19
|
+
interactor: Interactor<E, any>;
|
|
20
|
+
run: (interactor: Interactor<E, any>) => Operation<T>;
|
|
16
21
|
/**
|
|
17
22
|
* Return a description of the interaction
|
|
18
23
|
*/
|
|
19
24
|
description: string;
|
|
25
|
+
/**
|
|
26
|
+
* Return a code representation of the interaction
|
|
27
|
+
*/
|
|
28
|
+
code: () => string;
|
|
29
|
+
/**
|
|
30
|
+
* Return a serialized options of the interaction
|
|
31
|
+
*/
|
|
32
|
+
options: SerializedInteractionOptions;
|
|
20
33
|
/**
|
|
21
34
|
* Perform the interaction
|
|
22
35
|
*/
|
|
23
|
-
action: () =>
|
|
36
|
+
action: () => Task<T>;
|
|
37
|
+
check?: () => Task<T>;
|
|
38
|
+
halt: () => Promise<void>;
|
|
24
39
|
[interactionSymbol]: true;
|
|
25
40
|
}
|
|
41
|
+
export interface ActionInteraction<E extends Element, T = void> extends Interaction<E, T> {
|
|
42
|
+
type: "action";
|
|
43
|
+
check: undefined;
|
|
44
|
+
}
|
|
26
45
|
/**
|
|
27
46
|
* Like {@link Interaction}, except that it is used for assertions only.
|
|
28
47
|
*
|
|
29
48
|
* @typeParam T the return value of the promise that this interaction evaluates to.
|
|
30
49
|
*/
|
|
31
|
-
export interface
|
|
50
|
+
export interface AssertionInteraction<E extends Element, T = void> extends Interaction<E, T> {
|
|
51
|
+
type: "assertion";
|
|
32
52
|
/**
|
|
33
53
|
* Perform the check
|
|
34
54
|
*/
|
|
35
|
-
check: () =>
|
|
55
|
+
check: () => Task<T>;
|
|
36
56
|
}
|
|
37
|
-
export declare
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
57
|
+
export declare type InteractionOptions<E extends Element, T> = {
|
|
58
|
+
name: string;
|
|
59
|
+
description: string;
|
|
60
|
+
filters?: FilterParams<any, any>;
|
|
61
|
+
args?: unknown[];
|
|
62
|
+
interactor: Interactor<E, any>;
|
|
63
|
+
run: (interactor: Interactor<E, any>) => Operation<T>;
|
|
64
|
+
};
|
|
65
|
+
export declare function createInteraction<E extends Element, T>(type: 'action', options: InteractionOptions<E, T>): ActionInteraction<E, T>;
|
|
66
|
+
export declare function createInteraction<E extends Element, T>(type: 'assertion', options: InteractionOptions<E, T>): AssertionInteraction<E, T>;
|
|
67
|
+
export declare function createInteraction<E extends Element, T, Q>(type: 'action', options: InteractionOptions<E, T>, apply: FilterFn<Q, Element>): ActionInteraction<E, T> & FilterObject<Q, Element>;
|
|
68
|
+
export declare function createInteraction<E extends Element, T, Q>(type: 'assertion', options: InteractionOptions<E, T>, apply: FilterFn<Q, Element>): AssertionInteraction<E, T> & FilterObject<Q, Element>;
|
|
41
69
|
export {};
|
|
42
70
|
//# sourceMappingURL=interaction.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interaction.d.ts","sourceRoot":"","sources":["../src/interaction.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"interaction.d.ts","sourceRoot":"","sources":["../src/interaction.ts"],"names":[],"mappings":"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"}
|
package/dist/match.d.ts
CHANGED
|
@@ -8,8 +8,8 @@ export declare class Match<E extends Element, F extends Filters<E>> {
|
|
|
8
8
|
locator?: Locator<E> | undefined;
|
|
9
9
|
matchLocator?: MatchLocator<E>;
|
|
10
10
|
matchFilter: MatchFilter<E, F>;
|
|
11
|
-
matches: boolean;
|
|
12
11
|
constructor(element: E, filterSet: FilterSet<E, F>, locator?: Locator<E> | undefined);
|
|
12
|
+
get matches(): boolean;
|
|
13
13
|
asTableHeader(name: string): string[];
|
|
14
14
|
asTableRow(): string[];
|
|
15
15
|
get sortWeight(): number;
|
|
@@ -18,10 +18,10 @@ export declare class Match<E extends Element, F extends Filters<E>> {
|
|
|
18
18
|
export declare class MatchLocator<E extends Element> {
|
|
19
19
|
element: E;
|
|
20
20
|
locator: Locator<E>;
|
|
21
|
-
matches: boolean;
|
|
22
21
|
expected: MaybeMatcher<string> | null;
|
|
23
22
|
actual: string | null;
|
|
24
23
|
constructor(element: E, locator: Locator<E>);
|
|
24
|
+
get matches(): boolean;
|
|
25
25
|
formatActual(): string;
|
|
26
26
|
description(): string;
|
|
27
27
|
get sortWeight(): number;
|
|
@@ -29,9 +29,9 @@ export declare class MatchLocator<E extends Element> {
|
|
|
29
29
|
export declare class MatchFilter<E extends Element, F extends Filters<E>> {
|
|
30
30
|
element: E;
|
|
31
31
|
filter: FilterSet<E, F>;
|
|
32
|
-
matches: boolean;
|
|
33
32
|
items: MatchFilterItem<unknown, E, F>[];
|
|
34
33
|
constructor(element: E, filter: FilterSet<E, F>);
|
|
34
|
+
get matches(): boolean;
|
|
35
35
|
asTableRow(): string[];
|
|
36
36
|
get sortWeight(): number;
|
|
37
37
|
formatAsExpectations(): string;
|
|
@@ -42,9 +42,9 @@ export declare class MatchFilterItem<T, E extends Element, F extends Filters<E>>
|
|
|
42
42
|
filter: FilterSet<E, F>;
|
|
43
43
|
key: string;
|
|
44
44
|
expected: MaybeMatcher<T>;
|
|
45
|
-
actual: T;
|
|
46
|
-
matches: boolean;
|
|
47
45
|
constructor(element: E, filter: FilterSet<E, F>, key: string, expected: MaybeMatcher<T>);
|
|
46
|
+
get matches(): boolean;
|
|
47
|
+
get actual(): T;
|
|
48
48
|
formatActual(): string;
|
|
49
49
|
formatExpected(): string;
|
|
50
50
|
description(): string;
|
package/dist/match.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"match.d.ts","sourceRoot":"","sources":["../src/match.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAE5D,OAAO,EAAE,YAAY,EAAoC,MAAM,WAAW,CAAC;AAI3E,qBAAa,KAAK,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,SAAS,OAAO,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"match.d.ts","sourceRoot":"","sources":["../src/match.ts"],"names":[],"mappings":"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"}
|
package/dist/matcher.d.ts
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
export interface Matcher<T> {
|
|
2
2
|
match(actual: T): boolean;
|
|
3
3
|
description(): string;
|
|
4
|
+
code?(): string;
|
|
4
5
|
}
|
|
5
6
|
export declare type MaybeMatcher<T> = Matcher<T> | T;
|
|
6
7
|
export declare function isMatcher<T>(value: MaybeMatcher<T>): value is Matcher<T>;
|
|
7
8
|
export declare function matcherDescription<T>(value: MaybeMatcher<T>): string;
|
|
8
9
|
export declare function applyMatcher<T>(value: MaybeMatcher<T>, actual: T): boolean;
|
|
10
|
+
export declare function matcherCode<T>(value: MaybeMatcher<T>): string;
|
|
9
11
|
//# sourceMappingURL=matcher.d.ts.map
|
package/dist/matcher.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"matcher.d.ts","sourceRoot":"","sources":["../src/matcher.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,OAAO,CAAC,CAAC;IACxB,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,OAAO,CAAC;IAC1B,WAAW,IAAI,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"matcher.d.ts","sourceRoot":"","sources":["../src/matcher.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,OAAO,CAAC,CAAC;IACxB,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,OAAO,CAAC;IAC1B,WAAW,IAAI,MAAM,CAAC;IACtB,IAAI,CAAC,IAAI,MAAM,CAAC;CACjB;AAED,oBAAY,YAAY,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAE7C,wBAAgB,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,OAAO,CAAC,CAAC,CAAC,CAExE;AAED,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,MAAM,CAMpE;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,OAAO,CAM1E;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,MAAM,CAQ7D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"and.d.ts","sourceRoot":"","sources":["../../src/matchers/and.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,YAAY,
|
|
1
|
+
{"version":3,"file":"and.d.ts","sourceRoot":"","sources":["../../src/matchers/and.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,YAAY,EAAiD,MAAM,YAAY,CAAC;AAElG,wBAAgB,GAAG,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAY7D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"every.d.ts","sourceRoot":"","sources":["../../src/matchers/every.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,YAAY,
|
|
1
|
+
{"version":3,"file":"every.d.ts","sourceRoot":"","sources":["../../src/matchers/every.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,YAAY,EAAiD,MAAM,YAAY,CAAC;AAElG,wBAAgB,KAAK,CAAC,CAAC,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAYxE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"including.d.ts","sourceRoot":"","sources":["../../src/matchers/including.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"including.d.ts","sourceRoot":"","sources":["../../src/matchers/including.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAc,MAAM,YAAY,CAAC;AAEjD,wBAAgB,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAY5D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"matching.d.ts","sourceRoot":"","sources":["../../src/matchers/matching.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"matching.d.ts","sourceRoot":"","sources":["../../src/matchers/matching.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAe,MAAM,YAAY,CAAC;AAElD,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAYxD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"not.d.ts","sourceRoot":"","sources":["../../src/matchers/not.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,YAAY,
|
|
1
|
+
{"version":3,"file":"not.d.ts","sourceRoot":"","sources":["../../src/matchers/not.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,YAAY,EAAiD,MAAM,YAAY,CAAC;AAElG,wBAAgB,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAY3D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"or.d.ts","sourceRoot":"","sources":["../../src/matchers/or.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,YAAY,
|
|
1
|
+
{"version":3,"file":"or.d.ts","sourceRoot":"","sources":["../../src/matchers/or.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,YAAY,EAAiD,MAAM,YAAY,CAAC;AAElG,wBAAgB,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAY5D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"some.d.ts","sourceRoot":"","sources":["../../src/matchers/some.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,YAAY,
|
|
1
|
+
{"version":3,"file":"some.d.ts","sourceRoot":"","sources":["../../src/matchers/some.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,YAAY,EAAiD,MAAM,YAAY,CAAC;AAElG,wBAAgB,IAAI,CAAC,CAAC,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAYvE"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { InteractorOptions } from './specification';
|
|
2
|
+
export declare function findElements<E extends Element>(parentElement: Element, interactor: InteractorOptions<any, any, any>): E[];
|
|
3
|
+
export declare function hasMatchMatching(parentElement: Element, interactor: InteractorOptions<any, any, any>): boolean;
|
|
4
|
+
export declare function resolveUnique(parentElement: Element, interactor: InteractorOptions<any, any, any>): Element;
|
|
5
|
+
export declare function resolveFirst(parentElement: Element, interactor: InteractorOptions<any, any, any>): Element;
|
|
6
|
+
export declare function resolveEmpty(parentElement: Element, interactor: InteractorOptions<any, any, any>): void;
|
|
7
|
+
export declare function unsafeSyncResolveParent(options: InteractorOptions<any, any, any>): Element;
|
|
8
|
+
export declare function unsafeSyncResolveUnique<E extends Element>(options: InteractorOptions<E, any, any>): E;
|
|
9
|
+
//# sourceMappingURL=resolvers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolvers.d.ts","sourceRoot":"","sources":["../src/resolvers.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAIpD,wBAAgB,YAAY,CAAC,CAAC,SAAS,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,UAAU,EAAE,iBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,CAYzH;AA0BD,wBAAgB,gBAAgB,CAAC,aAAa,EAAE,OAAO,EAAE,UAAU,EAAE,iBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,OAAO,CAE9G;AAcD,wBAAgB,aAAa,CAAC,aAAa,EAAE,OAAO,EAAE,UAAU,EAAE,iBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,OAAO,CAS3G;AAID,wBAAgB,YAAY,CAAC,aAAa,EAAE,OAAO,EAAE,UAAU,EAAE,iBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,OAAO,CAE1G;AAID,wBAAgB,YAAY,CAAC,aAAa,EAAE,OAAO,EAAE,UAAU,EAAE,iBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,IAAI,CAOvG;AAED,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,iBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,OAAO,CAE1F;AAED,wBAAgB,uBAAuB,CAAC,CAAC,SAAS,OAAO,EAAE,OAAO,EAAE,iBAAiB,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAErG"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { InteractionOptions as SerializedInteractionOptions, InteractionType } from "@interactors/globals";
|
|
2
|
+
import { InteractionOptions } from "./interaction";
|
|
3
|
+
import { InteractorOptions } from "./specification";
|
|
4
|
+
export declare function serializeInteractorOptions(options: InteractorOptions<any, any, any>): {
|
|
5
|
+
interactor: string;
|
|
6
|
+
filter: {
|
|
7
|
+
[name: string]: unknown;
|
|
8
|
+
};
|
|
9
|
+
locator: string;
|
|
10
|
+
code: () => string;
|
|
11
|
+
};
|
|
12
|
+
export declare function serializeInteractionOptions<E extends Element, T>(type: InteractionType, { name, interactor: { options }, args, filters }: InteractionOptions<E, T>): SerializedInteractionOptions;
|
|
13
|
+
//# sourceMappingURL=serialize.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serialize.d.ts","sourceRoot":"","sources":["../src/serialize.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,IAAI,4BAA4B,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE3G,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAEnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEpD,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,iBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG;IACrF,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,MAAM,CAAC;CACpB,CAcA;AAED,wBAAgB,2BAA2B,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,EAC9D,IAAI,EAAE,eAAe,EACrB,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC,GACzE,4BAA4B,CAsB9B"}
|
package/dist/specification.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
import { Operation } from '@effection/core';
|
|
1
2
|
import { FilterSet } from './filter-set';
|
|
2
3
|
import { Locator } from './locator';
|
|
3
|
-
import {
|
|
4
|
+
import { ActionInteraction, AssertionInteraction } from './interaction';
|
|
4
5
|
import { MergeObjects } from './merge-objects';
|
|
5
6
|
import { MaybeMatcher } from './matcher';
|
|
6
7
|
export declare type EmptyObject = Record<never, never>;
|
|
@@ -32,7 +33,7 @@ export interface Interactor<E extends Element, F extends FilterParams<any, any>>
|
|
|
32
33
|
* await Link('Next').perform((e) => e.click());
|
|
33
34
|
* ```
|
|
34
35
|
*/
|
|
35
|
-
perform(fn: (element: E) => void):
|
|
36
|
+
perform(fn: (element: E) => void): ActionInteraction<E, void>;
|
|
36
37
|
/**
|
|
37
38
|
* Perform a one-off assertion on the given interactor. Takes a function which
|
|
38
39
|
* receives an element. This function converges, which means that it is rerun
|
|
@@ -47,7 +48,7 @@ export interface Interactor<E extends Element, F extends FilterParams<any, any>>
|
|
|
47
48
|
* await Link('Next').assert((e) => assert(e.tagName === 'A'));
|
|
48
49
|
* ```
|
|
49
50
|
*/
|
|
50
|
-
assert(fn: (element: E) => void):
|
|
51
|
+
assert(fn: (element: E) => void): AssertionInteraction<E, void>;
|
|
51
52
|
/**
|
|
52
53
|
* An assertion which checks that an element matching the interactor exists.
|
|
53
54
|
* Throws an error if the element does not exist.
|
|
@@ -58,7 +59,7 @@ export interface Interactor<E extends Element, F extends FilterParams<any, any>>
|
|
|
58
59
|
* await Link('Next').exists();
|
|
59
60
|
* ```
|
|
60
61
|
*/
|
|
61
|
-
exists():
|
|
62
|
+
exists(): AssertionInteraction<E, void> & FilterObject<boolean, Element>;
|
|
62
63
|
/**
|
|
63
64
|
* An assertion which checks that an element matching the interactor does not
|
|
64
65
|
* exist. Throws an error if the element exists.
|
|
@@ -69,7 +70,7 @@ export interface Interactor<E extends Element, F extends FilterParams<any, any>>
|
|
|
69
70
|
* await Link('Next').absent();
|
|
70
71
|
* ```
|
|
71
72
|
*/
|
|
72
|
-
absent():
|
|
73
|
+
absent(): AssertionInteraction<E, void> & FilterObject<boolean, Element>;
|
|
73
74
|
/**
|
|
74
75
|
* Checks that there is one element matching the interactor, and that this
|
|
75
76
|
* element matches the given filters. The available filters are defined by
|
|
@@ -81,7 +82,7 @@ export interface Interactor<E extends Element, F extends FilterParams<any, any>>
|
|
|
81
82
|
* await Link('Home').has({ href: '/' })
|
|
82
83
|
* ```
|
|
83
84
|
*/
|
|
84
|
-
has(filters: F):
|
|
85
|
+
has(filters: F): AssertionInteraction<E, void>;
|
|
85
86
|
/**
|
|
86
87
|
* Identical to {@link has}, but reads better with some filters.
|
|
87
88
|
*
|
|
@@ -91,7 +92,7 @@ export interface Interactor<E extends Element, F extends FilterParams<any, any>>
|
|
|
91
92
|
* await CheckBox('Accept conditions').is({ checked: true })
|
|
92
93
|
* ```
|
|
93
94
|
*/
|
|
94
|
-
is(filters: F):
|
|
95
|
+
is(filters: F): AssertionInteraction<E, void>;
|
|
95
96
|
/**
|
|
96
97
|
* Returns a copy of the given interactor which is scoped to this interactor.
|
|
97
98
|
* When there are multiple matches for an interactor, this makes it possible
|
|
@@ -114,7 +115,7 @@ export interface Interactor<E extends Element, F extends FilterParams<any, any>>
|
|
|
114
115
|
*/
|
|
115
116
|
apply: FilterFn<string, Element>;
|
|
116
117
|
}
|
|
117
|
-
export declare type ActionFn<E extends Element
|
|
118
|
+
export declare type ActionFn<E extends Element, I extends Interactor<E, any>> = (interactor: I, ...args: any[]) => Operation<unknown>;
|
|
118
119
|
export declare type FilterFn<T, E extends Element> = (element: E) => T;
|
|
119
120
|
export declare type FilterObject<T, E extends Element> = {
|
|
120
121
|
apply: FilterFn<T, E>;
|
|
@@ -122,9 +123,9 @@ export declare type FilterObject<T, E extends Element> = {
|
|
|
122
123
|
};
|
|
123
124
|
export declare type FilterDefinition<T, E extends Element> = FilterFn<T, E> | FilterObject<T, E>;
|
|
124
125
|
export declare type Filters<E extends Element> = Record<string, FilterDefinition<unknown, E>>;
|
|
125
|
-
export declare type Actions<E extends Element
|
|
126
|
+
export declare type Actions<E extends Element, I extends Interactor<E, any>> = Record<string, ActionFn<E, I>>;
|
|
126
127
|
export declare type SelectorFn<E extends Element> = (parentElement: Element) => E[];
|
|
127
|
-
export declare type InteractorSpecification<E extends Element, F extends Filters<E>, A extends Actions<E
|
|
128
|
+
export declare type InteractorSpecification<E extends Element, F extends Filters<E>, A extends Actions<E, Interactor<E, EmptyObject>>> = {
|
|
128
129
|
/**
|
|
129
130
|
* The CSS selector that this interactor uses to find matching elements
|
|
130
131
|
*/
|
|
@@ -139,11 +140,11 @@ export declare type InteractorSpecification<E extends Element, F extends Filters
|
|
|
139
140
|
*/
|
|
140
141
|
locator?: FilterDefinition<string, E>;
|
|
141
142
|
};
|
|
142
|
-
export declare type ActionMethods<E extends Element, A extends Actions<E>> = {
|
|
143
|
-
[P in keyof A]: A[P] extends ((interactor:
|
|
143
|
+
export declare type ActionMethods<E extends Element, A extends Actions<E, I>, I extends Interactor<E, any>> = {
|
|
144
|
+
[P in keyof A]: A[P] extends ((interactor: I, ...args: infer TArgs) => Operation<infer TReturn>) ? ((...args: TArgs) => ActionInteraction<E, TReturn>) : never;
|
|
144
145
|
};
|
|
145
146
|
export declare type FilterMethods<E extends Element, F extends Filters<E>> = {
|
|
146
|
-
[P in keyof F]: F[P] extends FilterFn<infer TReturn, any> ? (() =>
|
|
147
|
+
[P in keyof F]: F[P] extends FilterFn<infer TReturn, any> ? (() => AssertionInteraction<E, TReturn> & FilterObject<TReturn, Element>) : F[P] extends FilterObject<infer TReturn, any> ? (() => AssertionInteraction<E, TReturn> & FilterObject<TReturn, Element>) : never;
|
|
147
148
|
};
|
|
148
149
|
export declare type FilterReturn<F> = {
|
|
149
150
|
[P in keyof F]?: F[P] extends MaybeMatcher<infer T> ? T : never;
|
|
@@ -163,11 +164,11 @@ export declare type FilterParams<E extends Element, F extends Filters<E>> = keyo
|
|
|
163
164
|
* @typeParam F the filters of this interactor, this is usually inferred from the specification
|
|
164
165
|
* @typeParam A the actions of this interactor, this is usually inferred from the specification
|
|
165
166
|
*/
|
|
166
|
-
export interface InteractorConstructor<E extends Element, FP extends FilterParams<any, any>, FM extends FilterMethods<any, any>, AM extends ActionMethods<any, any>> {
|
|
167
|
+
export interface InteractorConstructor<E extends Element, FP extends FilterParams<any, any>, FM extends FilterMethods<any, any>, AM extends ActionMethods<any, any, any>> {
|
|
167
168
|
selector(value: string | SelectorFn<E>): InteractorConstructor<E, FP, FM, AM>;
|
|
168
169
|
locator(value: FilterDefinition<string, E>): InteractorConstructor<E, FP, FM, AM>;
|
|
169
170
|
filters<FR extends Filters<E>>(filters: FR): InteractorConstructor<E, MergeObjects<FP, FilterParams<E, FR>>, MergeObjects<FM, FilterMethods<E, FR>>, AM>;
|
|
170
|
-
actions<AR extends Actions<E>>(actions: AR): InteractorConstructor<E, FP, FM, MergeObjects<AM, ActionMethods<E, AR>>>;
|
|
171
|
+
actions<I extends Interactor<E, FP> & FM & AM, AR extends Actions<E, I>>(actions: AR): InteractorConstructor<E, FP, FM, MergeObjects<AM, ActionMethods<E, AR, I>>>;
|
|
171
172
|
extend<ER extends E = E>(name: string): InteractorConstructor<ER, FP, FM, AM>;
|
|
172
173
|
/**
|
|
173
174
|
* The constructor can be called with filters only:
|
|
@@ -190,6 +191,7 @@ export interface InteractorConstructor<E extends Element, FP extends FilterParam
|
|
|
190
191
|
*
|
|
191
192
|
* ``` typescript
|
|
192
193
|
* Link('Home');
|
|
194
|
+
* Link(/^home/i);
|
|
193
195
|
* ```
|
|
194
196
|
*
|
|
195
197
|
* Or with a locator and options:
|
|
@@ -201,9 +203,9 @@ export interface InteractorConstructor<E extends Element, FP extends FilterParam
|
|
|
201
203
|
* @param value The locator value, which should match the value of applying the locator function defined in the {@link InteractorSpecification} to the element.
|
|
202
204
|
* @param filters An object describing a set of filters to apply, which should match the value of applying the filters defined in the {@link InteractorSpecification} to the element.
|
|
203
205
|
*/
|
|
204
|
-
(value: MaybeMatcher<string
|
|
206
|
+
(value: MaybeMatcher<string> | RegExp, filters?: FP): Interactor<E, FP> & FM & AM;
|
|
205
207
|
}
|
|
206
|
-
export declare type InteractorOptions<E extends Element, F extends Filters<E>, A extends Actions<E
|
|
208
|
+
export declare type InteractorOptions<E extends Element, F extends Filters<E>, A extends Actions<E, Interactor<E, EmptyObject>>> = {
|
|
207
209
|
name: string;
|
|
208
210
|
specification: InteractorSpecification<E, F, A>;
|
|
209
211
|
locator?: Locator<E>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"specification.d.ts","sourceRoot":"","sources":["../src/specification.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"specification.d.ts","sourceRoot":"","sources":["../src/specification.ts"],"names":[],"mappings":"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"}
|