@interactors/core 0.3.0 → 1.0.0-rc1.2
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/CHANGELOG.md +41 -0
- package/dist/cjs/constructor.js +28 -34
- package/dist/cjs/constructor.js.map +1 -1
- package/dist/cjs/index.js +1 -20
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/inspector.js +1 -1
- package/dist/cjs/inspector.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/constructor.d.ts +3 -4
- package/dist/constructor.d.ts.map +1 -1
- package/dist/esm/constructor.js +27 -32
- package/dist/esm/constructor.js.map +1 -1
- package/dist/esm/index.js +0 -4
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/inspector.js +2 -2
- package/dist/esm/inspector.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/index.d.ts +3 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/inspector.d.ts +2 -2
- package/dist/inspector.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/specification.d.ts +40 -44
- package/dist/specification.d.ts.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +2 -3
- package/src/constructor.ts +36 -45
- package/src/index.ts +3 -5
- package/src/inspector.ts +4 -4
- 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/specification.ts +47 -52
- package/dist/cjs/dispatch.js +0 -34
- package/dist/cjs/dispatch.js.map +0 -1
- package/dist/cjs/element/fill-in.js +0 -71
- package/dist/cjs/element/fill-in.js.map +0 -1
- package/dist/cjs/focused.js +0 -47
- package/dist/cjs/focused.js.map +0 -1
- package/dist/cjs/perform.js +0 -13
- package/dist/cjs/perform.js.map +0 -1
- package/dist/dispatch.d.ts +0 -6
- package/dist/dispatch.d.ts.map +0 -1
- package/dist/element/fill-in.d.ts +0 -12
- package/dist/element/fill-in.d.ts.map +0 -1
- package/dist/esm/dispatch.js +0 -26
- package/dist/esm/dispatch.js.map +0 -1
- package/dist/esm/element/fill-in.js +0 -67
- package/dist/esm/element/fill-in.js.map +0 -1
- package/dist/esm/focused.js +0 -41
- package/dist/esm/focused.js.map +0 -1
- package/dist/esm/perform.js +0 -9
- package/dist/esm/perform.js.map +0 -1
- package/dist/focused.d.ts +0 -30
- package/dist/focused.d.ts.map +0 -1
- package/dist/perform.d.ts +0 -3
- package/dist/perform.d.ts.map +0 -1
- package/src/dispatch.ts +0 -24
- package/src/element/fill-in.ts +0 -76
- package/src/focused.ts +0 -43
- package/src/perform.ts +0 -11
package/dist/esm/index.js
CHANGED
|
@@ -1,10 +1,7 @@
|
|
|
1
1
|
export { isInteraction } from './interaction';
|
|
2
2
|
export { createInteractor } from './create-interactor';
|
|
3
3
|
export { createInspector } from './inspector';
|
|
4
|
-
export { perform } from './perform';
|
|
5
|
-
export { focused, focus, blur } from './focused';
|
|
6
4
|
export { isVisible } from 'element-is-visible';
|
|
7
|
-
export * from './dispatch';
|
|
8
5
|
export { including } from './matchers/including';
|
|
9
6
|
export { matching } from './matchers/matching';
|
|
10
7
|
export { and } from './matchers/and';
|
|
@@ -12,6 +9,5 @@ export { or } from './matchers/or';
|
|
|
12
9
|
export { not } from './matchers/not';
|
|
13
10
|
export { some } from './matchers/some';
|
|
14
11
|
export { every } from './matchers/every';
|
|
15
|
-
export { fillIn } from './element/fill-in';
|
|
16
12
|
export { click } from './element/click';
|
|
17
13
|
//# sourceMappingURL=index.js.map
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAoC,aAAa,EAAE,MAAM,eAAe,CAAC;AAChF,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAC7C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAoC,aAAa,EAAE,MAAM,eAAe,CAAC;AAChF,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAG/C,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"}
|
package/dist/esm/inspector.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
|
-
import {
|
|
2
|
+
import { findElements, unsafeSyncResolveParent, instantiateInteractor } from "./constructor";
|
|
3
3
|
export function createInspector(constructor, parentElement) {
|
|
4
4
|
// NOTE: Wait for https://github.com/thefrontside/bigtest/pull/895 to use specification instead
|
|
5
5
|
let options = constructor().options;
|
|
6
6
|
return {
|
|
7
7
|
all() {
|
|
8
8
|
let elements = findElements(parentElement !== null && parentElement !== void 0 ? parentElement : unsafeSyncResolveParent(options), options);
|
|
9
|
-
return elements.map(element => (Object.assign(
|
|
9
|
+
return elements.map(element => (Object.assign(instantiateInteractor(options, () => element), {
|
|
10
10
|
element,
|
|
11
11
|
find(constructor) {
|
|
12
12
|
return createInspector(constructor, element);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inspector.js","sourceRoot":"","sources":["../../src/inspector.ts"],"names":[],"mappings":"AAAA,uDAAuD;AAEvD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"inspector.js","sourceRoot":"","sources":["../../src/inspector.ts"],"names":[],"mappings":"AAAA,uDAAuD;AAEvD,OAAO,EAAE,YAAY,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAmB7F,MAAM,UAAU,eAAe,CAC7B,WAAe,EACf,aAAuB;IAEvB,+FAA+F;IAC/F,IAAI,OAAO,GAAG,WAAW,EAAE,CAAC,OAAoC,CAAA;IAChE,OAAO;QACL,GAAG;YACD,IAAI,QAAQ,GAAG,YAAY,CAAiB,aAAa,aAAb,aAAa,cAAb,aAAa,GAAI,uBAAuB,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC;YACxG,OAAO,QAAQ,CAAC,GAAG,CACjB,OAAO,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CACvB,qBAAqB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAA2E,EAAE;gBACzH,OAAO;gBACP,IAAI,CAAsD,WAAc;oBACtE,OAAO,eAAe,CAAC,WAAW,EAAE,OAAO,CAAC,CAAA;gBAC9C,CAAC;aACF,CAAC,CAAC,CACJ,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC"}
|
package/dist/esm/matcher.js
CHANGED
|
@@ -18,4 +18,15 @@ export function applyMatcher(value, actual) {
|
|
|
18
18
|
return isEqual(value, actual);
|
|
19
19
|
}
|
|
20
20
|
}
|
|
21
|
+
export function matcherCode(value) {
|
|
22
|
+
if (isMatcher(value) && value.code) {
|
|
23
|
+
return value.code();
|
|
24
|
+
}
|
|
25
|
+
else if (value instanceof RegExp) {
|
|
26
|
+
return value.toString();
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
return JSON.stringify(value);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
21
32
|
//# sourceMappingURL=matcher.js.map
|
package/dist/esm/matcher.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"matcher.js","sourceRoot":"","sources":["../../src/matcher.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"matcher.js","sourceRoot":"","sources":["../../src/matcher.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,gBAAgB,CAAC;AAUrC,MAAM,UAAU,SAAS,CAAI,KAAsB;IACjD,OAAO,KAAK,IAAI,OAAQ,KAAoB,CAAC,KAAK,KAAK,UAAU,IAAI,OAAQ,KAAoB,CAAC,WAAW,KAAK,UAAU,CAAC;AAC/H,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAI,KAAsB;IAC1D,IAAG,SAAS,CAAC,KAAK,CAAC,EAAE;QACnB,OAAO,KAAK,CAAC,WAAW,EAAE,CAAC;KAC5B;SAAM;QACL,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;KAC9B;AACH,CAAC;AAED,MAAM,UAAU,YAAY,CAAI,KAAsB,EAAE,MAAS;IAC/D,IAAG,SAAS,CAAC,KAAK,CAAC,EAAE;QACnB,OAAO,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;KAC5B;SAAM;QACL,OAAO,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;KAC/B;AACH,CAAC;AAED,MAAM,UAAU,WAAW,CAAI,KAAsB;IACnD,IAAI,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,EAAE;QAClC,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC;KACrB;SAAM,IAAI,KAAK,YAAY,MAAM,EAAE;QAClC,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC;KACzB;SAAM;QACL,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;KAC9B;AACH,CAAC"}
|
package/dist/esm/matchers/and.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { matcherDescription, applyMatcher } from '../matcher';
|
|
1
|
+
import { matcherDescription, applyMatcher, matcherCode } from '../matcher';
|
|
2
2
|
export function and(...args) {
|
|
3
3
|
return {
|
|
4
4
|
match(actual) {
|
|
@@ -7,6 +7,9 @@ export function and(...args) {
|
|
|
7
7
|
description() {
|
|
8
8
|
return args.map(matcherDescription).join(' and ');
|
|
9
9
|
},
|
|
10
|
+
code() {
|
|
11
|
+
return `and(${args.map(arg => matcherCode(arg)).join(', ')})`;
|
|
12
|
+
}
|
|
10
13
|
};
|
|
11
14
|
}
|
|
12
15
|
//# sourceMappingURL=and.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"and.js","sourceRoot":"","sources":["../../../src/matchers/and.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,kBAAkB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"and.js","sourceRoot":"","sources":["../../../src/matchers/and.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,kBAAkB,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAElG,MAAM,UAAU,GAAG,CAAI,GAAG,IAAuB;IAC/C,OAAO;QACL,KAAK,CAAC,MAAS;YACb,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;QAChE,CAAC;QACD,WAAW;YACT,OAAO,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACpD,CAAC;QACD,IAAI;YACF,OAAO,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAA;QAC/D,CAAC;KACF,CAAA;AACH,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { applyMatcher, matcherDescription } from '../matcher';
|
|
1
|
+
import { applyMatcher, matcherDescription, matcherCode } from '../matcher';
|
|
2
2
|
export function every(expected) {
|
|
3
3
|
return {
|
|
4
4
|
match(actual) {
|
|
@@ -7,6 +7,9 @@ export function every(expected) {
|
|
|
7
7
|
description() {
|
|
8
8
|
return `every item ${matcherDescription(expected)}`;
|
|
9
9
|
},
|
|
10
|
+
code() {
|
|
11
|
+
return `every(${matcherCode(expected)})`;
|
|
12
|
+
}
|
|
10
13
|
};
|
|
11
14
|
}
|
|
12
15
|
//# sourceMappingURL=every.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"every.js","sourceRoot":"","sources":["../../../src/matchers/every.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,YAAY,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"every.js","sourceRoot":"","sources":["../../../src/matchers/every.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,YAAY,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAElG,MAAM,UAAU,KAAK,CAAI,QAAyB;IAChD,OAAO;QACL,KAAK,CAAC,MAAmB;YACvB,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;QAC5E,CAAC;QACD,WAAW;YACT,OAAO,cAAc,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAC;QACtD,CAAC;QACD,IAAI;YACF,OAAO,SAAS,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAA;QAC1C,CAAC;KACF,CAAA;AACH,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { matcherCode } from '../matcher';
|
|
1
2
|
export function including(subString) {
|
|
2
3
|
return {
|
|
3
4
|
match(actual) {
|
|
@@ -6,6 +7,9 @@ export function including(subString) {
|
|
|
6
7
|
description() {
|
|
7
8
|
return `including ${JSON.stringify(subString)}`;
|
|
8
9
|
},
|
|
10
|
+
code() {
|
|
11
|
+
return `including(${matcherCode(subString)})`;
|
|
12
|
+
}
|
|
9
13
|
};
|
|
10
14
|
}
|
|
11
15
|
//# sourceMappingURL=including.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"including.js","sourceRoot":"","sources":["../../../src/matchers/including.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"including.js","sourceRoot":"","sources":["../../../src/matchers/including.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,WAAW,EAAC,MAAM,YAAY,CAAC;AAEjD,MAAM,UAAU,SAAS,CAAC,SAAiB;IACzC,OAAO;QACL,KAAK,CAAC,MAAc;YAClB,OAAO,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QACpC,CAAC;QACD,WAAW;YACT,OAAO,aAAa,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC;QAClD,CAAC;QACD,IAAI;YACF,OAAO,aAAa,WAAW,CAAC,SAAS,CAAC,GAAG,CAAA;QAC/C,CAAC;KACF,CAAA;AACH,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { matcherCode } from '../matcher';
|
|
1
2
|
export function matching(regexp) {
|
|
2
3
|
return {
|
|
3
4
|
match(actual) {
|
|
@@ -6,6 +7,9 @@ export function matching(regexp) {
|
|
|
6
7
|
description() {
|
|
7
8
|
return `matching ${regexp}`;
|
|
8
9
|
},
|
|
10
|
+
code() {
|
|
11
|
+
return `matching(${matcherCode(regexp)})`;
|
|
12
|
+
}
|
|
9
13
|
};
|
|
10
14
|
}
|
|
11
15
|
//# sourceMappingURL=matching.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"matching.js","sourceRoot":"","sources":["../../../src/matchers/matching.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"matching.js","sourceRoot":"","sources":["../../../src/matchers/matching.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,WAAW,EAAE,MAAM,YAAY,CAAC;AAElD,MAAM,UAAU,QAAQ,CAAC,MAAc;IACrC,OAAO;QACL,KAAK,CAAC,MAAc;YAClB,OAAO,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC;QACtC,CAAC;QACD,WAAW;YACT,OAAO,YAAY,MAAM,EAAE,CAAC;QAC9B,CAAC;QACD,IAAI;YACF,OAAO,YAAY,WAAW,CAAC,MAAM,CAAC,GAAG,CAAA;QAC3C,CAAC;KACF,CAAA;AACH,CAAC"}
|
package/dist/esm/matchers/not.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { matcherDescription, applyMatcher } from '../matcher';
|
|
1
|
+
import { matcherDescription, applyMatcher, matcherCode } from '../matcher';
|
|
2
2
|
export function not(matcher) {
|
|
3
3
|
return {
|
|
4
4
|
match(actual) {
|
|
@@ -7,6 +7,9 @@ export function not(matcher) {
|
|
|
7
7
|
description() {
|
|
8
8
|
return `not ${matcherDescription(matcher)}`;
|
|
9
9
|
},
|
|
10
|
+
code() {
|
|
11
|
+
return `not(${matcherCode(matcher)})`;
|
|
12
|
+
}
|
|
10
13
|
};
|
|
11
14
|
}
|
|
12
15
|
//# sourceMappingURL=not.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"not.js","sourceRoot":"","sources":["../../../src/matchers/not.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,kBAAkB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"not.js","sourceRoot":"","sources":["../../../src/matchers/not.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,kBAAkB,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAElG,MAAM,UAAU,GAAG,CAAI,OAAwB;IAC7C,OAAO;QACL,KAAK,CAAC,MAAS;YACb,OAAO,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACxC,CAAC;QACD,WAAW;YACT,OAAO,OAAO,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC;QAC9C,CAAC;QACD,IAAI;YACF,OAAO,OAAO,WAAW,CAAC,OAAO,CAAC,GAAG,CAAA;QACvC,CAAC;KACF,CAAA;AACH,CAAC"}
|
package/dist/esm/matchers/or.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { matcherDescription, applyMatcher } from '../matcher';
|
|
1
|
+
import { matcherDescription, applyMatcher, matcherCode } from '../matcher';
|
|
2
2
|
export function or(...args) {
|
|
3
3
|
return {
|
|
4
4
|
match(actual) {
|
|
@@ -7,6 +7,9 @@ export function or(...args) {
|
|
|
7
7
|
description() {
|
|
8
8
|
return args.map(matcherDescription).join(' or ');
|
|
9
9
|
},
|
|
10
|
+
code() {
|
|
11
|
+
return `or(${args.map(arg => matcherCode(arg)).join(', ')})`;
|
|
12
|
+
}
|
|
10
13
|
};
|
|
11
14
|
}
|
|
12
15
|
//# sourceMappingURL=or.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"or.js","sourceRoot":"","sources":["../../../src/matchers/or.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,kBAAkB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"or.js","sourceRoot":"","sources":["../../../src/matchers/or.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,kBAAkB,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAElG,MAAM,UAAU,EAAE,CAAI,GAAG,IAAuB;IAC9C,OAAO;QACL,KAAK,CAAC,MAAS;YACb,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;QAC/D,CAAC;QACD,WAAW;YACT,OAAO,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACnD,CAAC;QACD,IAAI;YACF,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAA;QAC9D,CAAC;KACF,CAAA;AACH,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { applyMatcher, matcherDescription } from '../matcher';
|
|
1
|
+
import { applyMatcher, matcherDescription, matcherCode } from '../matcher';
|
|
2
2
|
export function some(expected) {
|
|
3
3
|
return {
|
|
4
4
|
match(actual) {
|
|
@@ -7,6 +7,9 @@ export function some(expected) {
|
|
|
7
7
|
description() {
|
|
8
8
|
return `some item ${matcherDescription(expected)}`;
|
|
9
9
|
},
|
|
10
|
+
code() {
|
|
11
|
+
return `some(${matcherCode(expected)})`;
|
|
12
|
+
}
|
|
10
13
|
};
|
|
11
14
|
}
|
|
12
15
|
//# sourceMappingURL=some.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"some.js","sourceRoot":"","sources":["../../../src/matchers/some.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,YAAY,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"some.js","sourceRoot":"","sources":["../../../src/matchers/some.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,YAAY,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAElG,MAAM,UAAU,IAAI,CAAI,QAAyB;IAC/C,OAAO;QACL,KAAK,CAAC,MAAmB;YACvB,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;QAC3E,CAAC;QACD,WAAW;YACT,OAAO,aAAa,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAC;QACrD,CAAC;QACD,IAAI;YACF,OAAO,QAAQ,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAA;QACzC,CAAC;KACF,CAAA;AACH,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,12 +1,9 @@
|
|
|
1
|
-
export { Interactor, InteractorConstructor, InteractorSpecification } from './specification';
|
|
1
|
+
export { Interactor, InteractorConstructor, InteractorSpecification, EmptyObject, FilterMethods, ActionMethods } from './specification';
|
|
2
2
|
export { Interaction, ReadonlyInteraction, isInteraction } from './interaction';
|
|
3
3
|
export { createInteractor } from './create-interactor';
|
|
4
4
|
export { createInspector } from './inspector';
|
|
5
|
-
export { perform } from './perform';
|
|
6
|
-
export { focused, focus, blur } from './focused';
|
|
7
5
|
export { isVisible } from 'element-is-visible';
|
|
8
6
|
export { Matcher } from './matcher';
|
|
9
|
-
export * from './dispatch';
|
|
10
7
|
export { including } from './matchers/including';
|
|
11
8
|
export { matching } from './matchers/matching';
|
|
12
9
|
export { and } from './matchers/and';
|
|
@@ -14,6 +11,7 @@ export { or } from './matchers/or';
|
|
|
14
11
|
export { not } from './matchers/not';
|
|
15
12
|
export { some } from './matchers/some';
|
|
16
13
|
export { every } from './matchers/every';
|
|
17
|
-
export { fillIn } from './element/fill-in';
|
|
18
14
|
export { click } from './element/click';
|
|
15
|
+
export { MergeObjects } from './merge-objects';
|
|
16
|
+
export { MaybeMatcher } from './matcher';
|
|
19
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,mBAAmB,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAChF,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
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Interactor, InteractorConstructor, FilterParams } from "./specification";
|
|
2
2
|
declare type GetElement<I extends InteractorConstructor<any, any, any, any>> = I extends InteractorConstructor<infer E, any, any, any> ? E : never;
|
|
3
3
|
declare type GetFilters<I extends InteractorConstructor<any, any, any, any>> = I extends InteractorConstructor<any, infer F, any, any> ? F : never;
|
|
4
4
|
declare type GetActions<I extends InteractorConstructor<any, any, any, any>> = I extends InteractorConstructor<any, any, any, infer A> ? A : never;
|
|
5
|
-
export interface InteractorInspector<E extends Element, FP extends FilterParams<any, any>> extends
|
|
5
|
+
export interface InteractorInspector<E extends Element, FP extends FilterParams<any, any>> extends Omit<Interactor<E, FP>, 'find'> {
|
|
6
6
|
element: E;
|
|
7
7
|
find<T extends InteractorConstructor<any, any, any, any>>(interactor: T): Inspector<T>;
|
|
8
8
|
}
|
package/dist/inspector.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inspector.d.ts","sourceRoot":"","sources":["../src/inspector.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"inspector.d.ts","sourceRoot":"","sources":["../src/inspector.ts"],"names":[],"mappings":"AAGA,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/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"}
|
package/dist/specification.d.ts
CHANGED
|
@@ -4,31 +4,12 @@ import { Interaction, ReadonlyInteraction } from './interaction';
|
|
|
4
4
|
import { MergeObjects } from './merge-objects';
|
|
5
5
|
import { MaybeMatcher } from './matcher';
|
|
6
6
|
export declare type EmptyObject = Record<never, never>;
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
*
|
|
14
|
-
* ``` typescript
|
|
15
|
-
* await Link('Next').exists();
|
|
16
|
-
* ```
|
|
17
|
-
*/
|
|
18
|
-
exists(): ReadonlyInteraction<void> & FilterObject<boolean, Element>;
|
|
19
|
-
/**
|
|
20
|
-
* An assertion which checks that an element matching the interactor does not
|
|
21
|
-
* exist. Throws an error if the element exists.
|
|
22
|
-
*
|
|
23
|
-
* ## Example
|
|
24
|
-
*
|
|
25
|
-
* ``` typescript
|
|
26
|
-
* await Link('Next').absent();
|
|
27
|
-
* ```
|
|
28
|
-
*/
|
|
29
|
-
absent(): ReadonlyInteraction<void> & FilterObject<boolean, Element>;
|
|
30
|
-
}
|
|
31
|
-
export interface BaseInteractor<E extends Element, F extends FilterParams<any, any>> {
|
|
7
|
+
/**
|
|
8
|
+
* Instances of an interactor returned by an {@link InteractorConstructor}, use
|
|
9
|
+
* this class as its base. They are also extended with any additional actions
|
|
10
|
+
* defined in their {@link InteractorSpecification}.
|
|
11
|
+
*/
|
|
12
|
+
export interface Interactor<E extends Element, F extends FilterParams<any, any>> {
|
|
32
13
|
/**
|
|
33
14
|
* @hidden
|
|
34
15
|
*/
|
|
@@ -67,6 +48,28 @@ export interface BaseInteractor<E extends Element, F extends FilterParams<any, a
|
|
|
67
48
|
* ```
|
|
68
49
|
*/
|
|
69
50
|
assert(fn: (element: E) => void): ReadonlyInteraction<void>;
|
|
51
|
+
/**
|
|
52
|
+
* An assertion which checks that an element matching the interactor exists.
|
|
53
|
+
* Throws an error if the element does not exist.
|
|
54
|
+
*
|
|
55
|
+
* ## Example
|
|
56
|
+
*
|
|
57
|
+
* ``` typescript
|
|
58
|
+
* await Link('Next').exists();
|
|
59
|
+
* ```
|
|
60
|
+
*/
|
|
61
|
+
exists(): ReadonlyInteraction<void> & FilterObject<boolean, Element>;
|
|
62
|
+
/**
|
|
63
|
+
* An assertion which checks that an element matching the interactor does not
|
|
64
|
+
* exist. Throws an error if the element exists.
|
|
65
|
+
*
|
|
66
|
+
* ## Example
|
|
67
|
+
*
|
|
68
|
+
* ``` typescript
|
|
69
|
+
* await Link('Next').absent();
|
|
70
|
+
* ```
|
|
71
|
+
*/
|
|
72
|
+
absent(): ReadonlyInteraction<void> & FilterObject<boolean, Element>;
|
|
70
73
|
/**
|
|
71
74
|
* Checks that there is one element matching the interactor, and that this
|
|
72
75
|
* element matches the given filters. The available filters are defined by
|
|
@@ -89,17 +92,6 @@ export interface BaseInteractor<E extends Element, F extends FilterParams<any, a
|
|
|
89
92
|
* ```
|
|
90
93
|
*/
|
|
91
94
|
is(filters: F): ReadonlyInteraction<void>;
|
|
92
|
-
/**
|
|
93
|
-
* @hidden
|
|
94
|
-
*/
|
|
95
|
-
apply: FilterFn<string, Element>;
|
|
96
|
-
}
|
|
97
|
-
/**
|
|
98
|
-
* Instances of an interactor returned by an {@link InteractorConstructor}, use
|
|
99
|
-
* this class as its base. They are also extended with any additional actions
|
|
100
|
-
* defined in their {@link InteractorSpecification}.
|
|
101
|
-
*/
|
|
102
|
-
export interface Interactor<E extends Element, F extends FilterParams<any, any>> extends BaseInteractor<E, F>, ExistsAssertionsImplementation {
|
|
103
95
|
/**
|
|
104
96
|
* Returns a copy of the given interactor which is scoped to this interactor.
|
|
105
97
|
* When there are multiple matches for an interactor, this makes it possible
|
|
@@ -117,8 +109,12 @@ export interface Interactor<E extends Element, F extends FilterParams<any, any>>
|
|
|
117
109
|
* @typeParam T the type of the interactor that we are going to scope
|
|
118
110
|
*/
|
|
119
111
|
find<T extends Interactor<any, any>>(interactor: T): T;
|
|
112
|
+
/**
|
|
113
|
+
* @hidden
|
|
114
|
+
*/
|
|
115
|
+
apply: FilterFn<string, Element>;
|
|
120
116
|
}
|
|
121
|
-
export declare type ActionFn<E extends Element
|
|
117
|
+
export declare type ActionFn<E extends Element, I extends Interactor<E, any>> = (interactor: I, ...args: any[]) => Promise<unknown>;
|
|
122
118
|
export declare type FilterFn<T, E extends Element> = (element: E) => T;
|
|
123
119
|
export declare type FilterObject<T, E extends Element> = {
|
|
124
120
|
apply: FilterFn<T, E>;
|
|
@@ -126,9 +122,9 @@ export declare type FilterObject<T, E extends Element> = {
|
|
|
126
122
|
};
|
|
127
123
|
export declare type FilterDefinition<T, E extends Element> = FilterFn<T, E> | FilterObject<T, E>;
|
|
128
124
|
export declare type Filters<E extends Element> = Record<string, FilterDefinition<unknown, E>>;
|
|
129
|
-
export declare type Actions<E extends Element
|
|
125
|
+
export declare type Actions<E extends Element, I extends Interactor<E, any>> = Record<string, ActionFn<E, I>>;
|
|
130
126
|
export declare type SelectorFn<E extends Element> = (parentElement: Element) => E[];
|
|
131
|
-
export declare type InteractorSpecification<E extends Element, F extends Filters<E>, A extends Actions<E
|
|
127
|
+
export declare type InteractorSpecification<E extends Element, F extends Filters<E>, A extends Actions<E, Interactor<E, EmptyObject>>> = {
|
|
132
128
|
/**
|
|
133
129
|
* The CSS selector that this interactor uses to find matching elements
|
|
134
130
|
*/
|
|
@@ -143,8 +139,8 @@ export declare type InteractorSpecification<E extends Element, F extends Filters
|
|
|
143
139
|
*/
|
|
144
140
|
locator?: FilterDefinition<string, E>;
|
|
145
141
|
};
|
|
146
|
-
export declare type ActionMethods<E extends Element, A extends Actions<E>> = {
|
|
147
|
-
[P in keyof A]: A[P] extends ((interactor:
|
|
142
|
+
export declare type ActionMethods<E extends Element, A extends Actions<E, I>, I extends Interactor<E, any>> = {
|
|
143
|
+
[P in keyof A]: A[P] extends ((interactor: I, ...args: infer TArgs) => Promise<infer TReturn>) ? ((...args: TArgs) => Interaction<TReturn>) : never;
|
|
148
144
|
};
|
|
149
145
|
export declare type FilterMethods<E extends Element, F extends Filters<E>> = {
|
|
150
146
|
[P in keyof F]: F[P] extends FilterFn<infer TReturn, any> ? (() => Interaction<TReturn> & FilterObject<TReturn, Element>) : F[P] extends FilterObject<infer TReturn, any> ? (() => Interaction<TReturn> & FilterObject<TReturn, Element>) : never;
|
|
@@ -167,11 +163,11 @@ export declare type FilterParams<E extends Element, F extends Filters<E>> = keyo
|
|
|
167
163
|
* @typeParam F the filters of this interactor, this is usually inferred from the specification
|
|
168
164
|
* @typeParam A the actions of this interactor, this is usually inferred from the specification
|
|
169
165
|
*/
|
|
170
|
-
export interface InteractorConstructor<E extends Element, FP extends FilterParams<any, any>, FM extends FilterMethods<any, any>, AM extends ActionMethods<any, any>> {
|
|
166
|
+
export interface InteractorConstructor<E extends Element, FP extends FilterParams<any, any>, FM extends FilterMethods<any, any>, AM extends ActionMethods<any, any, any>> {
|
|
171
167
|
selector(value: string | SelectorFn<E>): InteractorConstructor<E, FP, FM, AM>;
|
|
172
168
|
locator(value: FilterDefinition<string, E>): InteractorConstructor<E, FP, FM, AM>;
|
|
173
169
|
filters<FR extends Filters<E>>(filters: FR): InteractorConstructor<E, MergeObjects<FP, FilterParams<E, FR>>, MergeObjects<FM, FilterMethods<E, FR>>, AM>;
|
|
174
|
-
actions<AR extends Actions<E>>(actions: AR): InteractorConstructor<E, FP, FM, MergeObjects<AM, ActionMethods<E, AR>>>;
|
|
170
|
+
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>>>;
|
|
175
171
|
extend<ER extends E = E>(name: string): InteractorConstructor<ER, FP, FM, AM>;
|
|
176
172
|
/**
|
|
177
173
|
* The constructor can be called with filters only:
|
|
@@ -207,7 +203,7 @@ export interface InteractorConstructor<E extends Element, FP extends FilterParam
|
|
|
207
203
|
*/
|
|
208
204
|
(value: MaybeMatcher<string>, filters?: FP): Interactor<E, FP> & FM & AM;
|
|
209
205
|
}
|
|
210
|
-
export declare type InteractorOptions<E extends Element, F extends Filters<E>, A extends Actions<E
|
|
206
|
+
export declare type InteractorOptions<E extends Element, F extends Filters<E>, A extends Actions<E, Interactor<E, EmptyObject>>> = {
|
|
211
207
|
name: string;
|
|
212
208
|
specification: InteractorSpecification<E, F, A>;
|
|
213
209
|
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,WAAW,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAEzC,oBAAY,WAAW,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AAE/C
|
|
1
|
+
{"version":3,"file":"specification.d.ts","sourceRoot":"","sources":["../src/specification.ts"],"names":[],"mappings":"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"}
|