@interactors/core 1.0.0 → 1.0.1
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/esm/mod.d.ts +2 -0
- package/esm/mod.d.ts.map +1 -0
- package/esm/mod.js +2 -0
- package/esm/mod.js.map +1 -0
- package/esm/package.json +3 -0
- package/{dist → esm/src}/constructor.d.ts +1 -1
- package/esm/src/constructor.d.ts.map +1 -0
- package/{dist/esm → esm/src}/constructor.js +12 -12
- package/esm/src/constructor.js.map +1 -0
- package/esm/src/converge.d.ts +3 -0
- package/esm/src/converge.d.ts.map +1 -0
- package/esm/src/converge.js.map +1 -0
- package/{dist → esm/src}/create-interactor.d.ts +1 -1
- package/esm/src/create-interactor.d.ts.map +1 -0
- package/{dist/esm → esm/src}/create-interactor.js +1 -1
- package/esm/src/create-interactor.js.map +1 -0
- package/esm/src/element/click.d.ts +3 -0
- package/esm/src/element/click.d.ts.map +1 -0
- package/esm/src/element/click.js +5 -0
- package/esm/src/element/click.js.map +1 -0
- package/esm/src/errors.d.ts.map +1 -0
- package/esm/src/errors.js +45 -0
- package/esm/src/errors.js.map +1 -0
- package/esm/src/escape-html.d.ts.map +1 -0
- package/esm/src/escape-html.js.map +1 -0
- package/{dist → esm/src}/filter-set.d.ts +1 -1
- package/esm/src/filter-set.d.ts.map +1 -0
- package/{dist/esm → esm/src}/filter-set.js +14 -6
- package/esm/src/filter-set.js.map +1 -0
- package/{dist → esm/src}/format.d.ts +2 -2
- package/esm/src/format.d.ts.map +1 -0
- package/esm/src/format.js.map +1 -0
- package/esm/src/index.d.ts +18 -0
- package/esm/src/index.d.ts.map +1 -0
- package/esm/src/index.js +13 -0
- package/esm/src/index.js.map +1 -0
- package/{dist → esm/src}/inspector.d.ts +1 -1
- package/esm/src/inspector.d.ts.map +1 -0
- package/{dist/esm → esm/src}/inspector.js +3 -3
- package/esm/src/inspector.js.map +1 -0
- package/{dist → esm/src}/interaction.d.ts +3 -3
- package/esm/src/interaction.d.ts.map +1 -0
- package/{dist/esm → esm/src}/interaction.js +2 -2
- package/esm/src/interaction.js.map +1 -0
- package/{dist → esm/src}/locator.d.ts +2 -2
- package/esm/src/locator.d.ts.map +1 -0
- package/esm/src/locator.js +25 -0
- package/esm/src/locator.js.map +1 -0
- package/{dist → esm/src}/match.d.ts +4 -4
- package/esm/src/match.d.ts.map +1 -0
- package/{dist/esm → esm/src}/match.js +99 -16
- package/esm/src/match.js.map +1 -0
- package/esm/src/matcher.d.ts.map +1 -0
- package/esm/src/matcher.js.map +1 -0
- package/esm/src/matchers/and.d.ts +3 -0
- package/esm/src/matchers/and.d.ts.map +1 -0
- package/{dist/esm → esm/src}/matchers/and.js +1 -1
- package/esm/src/matchers/and.js.map +1 -0
- package/esm/src/matchers/every.d.ts +3 -0
- package/esm/src/matchers/every.d.ts.map +1 -0
- package/{dist/esm → esm/src}/matchers/every.js +1 -1
- package/esm/src/matchers/every.js.map +1 -0
- package/esm/src/matchers/including.d.ts +3 -0
- package/esm/src/matchers/including.d.ts.map +1 -0
- package/{dist/esm → esm/src}/matchers/including.js +1 -1
- package/esm/src/matchers/including.js.map +1 -0
- package/esm/src/matchers/matching.d.ts +3 -0
- package/esm/src/matchers/matching.d.ts.map +1 -0
- package/{dist/esm → esm/src}/matchers/matching.js +1 -1
- package/esm/src/matchers/matching.js.map +1 -0
- package/esm/src/matchers/not.d.ts +3 -0
- package/esm/src/matchers/not.d.ts.map +1 -0
- package/{dist/esm → esm/src}/matchers/not.js +1 -1
- package/esm/src/matchers/not.js.map +1 -0
- package/esm/src/matchers/or.d.ts +3 -0
- package/esm/src/matchers/or.d.ts.map +1 -0
- package/{dist/esm → esm/src}/matchers/or.js +1 -1
- package/esm/src/matchers/or.js.map +1 -0
- package/esm/src/matchers/some.d.ts +3 -0
- package/esm/src/matchers/some.d.ts.map +1 -0
- package/{dist/esm → esm/src}/matchers/some.js +1 -1
- package/esm/src/matchers/some.js.map +1 -0
- package/esm/src/merge-objects.d.ts.map +1 -0
- package/{dist/cjs → esm/src}/merge-objects.js.map +1 -1
- package/{dist → esm/src}/resolvers.d.ts +1 -1
- package/esm/src/resolvers.d.ts.map +1 -0
- package/{dist/esm → esm/src}/resolvers.js +3 -3
- package/esm/src/resolvers.js.map +1 -0
- package/{dist → esm/src}/serialize.d.ts +3 -3
- package/esm/src/serialize.d.ts.map +1 -0
- package/{dist/esm → esm/src}/serialize.js +2 -3
- package/esm/src/serialize.js.map +1 -0
- package/{dist → esm/src}/specification.d.ts +6 -6
- package/esm/src/specification.d.ts.map +1 -0
- package/esm/src/specification.js.map +1 -0
- package/package.json +19 -47
- package/script/mod.d.ts +2 -0
- package/script/mod.d.ts.map +1 -0
- package/script/mod.js +18 -0
- package/script/mod.js.map +1 -0
- package/script/package.json +3 -0
- package/script/src/constructor.d.ts +4 -0
- package/script/src/constructor.d.ts.map +1 -0
- package/{dist/cjs → script/src}/constructor.js +53 -54
- package/script/src/constructor.js.map +1 -0
- package/script/src/converge.d.ts +3 -0
- package/script/src/converge.d.ts.map +1 -0
- package/{dist/cjs → script/src}/converge.js +1 -2
- package/script/src/converge.js.map +1 -0
- package/script/src/create-interactor.d.ts +18 -0
- package/script/src/create-interactor.d.ts.map +1 -0
- package/{dist/cjs → script/src}/create-interactor.js +3 -4
- package/script/src/create-interactor.js.map +1 -0
- package/script/src/element/click.d.ts +3 -0
- package/script/src/element/click.d.ts.map +1 -0
- package/script/src/element/click.js +8 -0
- package/script/src/element/click.js.map +1 -0
- package/script/src/errors.d.ts +13 -0
- package/script/src/errors.d.ts.map +1 -0
- package/{dist/cjs → script/src}/errors.js +24 -4
- package/script/src/errors.js.map +1 -0
- package/script/src/escape-html.d.ts +2 -0
- package/script/src/escape-html.d.ts.map +1 -0
- package/{dist/cjs → script/src}/escape-html.js +1 -2
- package/script/src/escape-html.js.map +1 -0
- package/script/src/filter-set.d.ts +10 -0
- package/script/src/filter-set.d.ts.map +1 -0
- package/{dist/cjs → script/src}/filter-set.js +16 -8
- package/script/src/filter-set.js.map +1 -0
- package/script/src/format.d.ts +10 -0
- package/script/src/format.d.ts.map +1 -0
- package/{dist/cjs → script/src}/format.js +3 -4
- package/script/src/format.js.map +1 -0
- package/script/src/index.d.ts +18 -0
- package/script/src/index.d.ts.map +1 -0
- package/{dist/cjs → script/src}/index.js +22 -22
- package/script/src/index.js.map +1 -0
- package/script/src/inspector.d.ts +17 -0
- package/script/src/inspector.d.ts.map +1 -0
- package/{dist/cjs → script/src}/inspector.js +5 -6
- package/script/src/inspector.js.map +1 -0
- package/script/src/interaction.d.ts +70 -0
- package/script/src/interaction.d.ts.map +1 -0
- package/{dist/cjs → script/src}/interaction.js +5 -6
- package/script/src/interaction.js.map +1 -0
- package/script/src/locator.d.ts +10 -0
- package/script/src/locator.d.ts.map +1 -0
- package/script/src/locator.js +29 -0
- package/script/src/locator.js.map +1 -0
- package/script/src/match.d.ts +54 -0
- package/script/src/match.d.ts.map +1 -0
- package/{dist/cjs → script/src}/match.js +105 -22
- package/script/src/match.js.map +1 -0
- package/script/src/matcher.d.ts +11 -0
- package/script/src/matcher.d.ts.map +1 -0
- package/{dist/cjs → script/src}/matcher.js +4 -5
- package/script/src/matcher.js.map +1 -0
- package/script/src/matchers/and.d.ts +3 -0
- package/script/src/matchers/and.d.ts.map +1 -0
- package/script/src/matchers/and.js +18 -0
- package/script/src/matchers/and.js.map +1 -0
- package/script/src/matchers/every.d.ts +3 -0
- package/script/src/matchers/every.d.ts.map +1 -0
- package/{dist/cjs → script/src}/matchers/every.js +5 -6
- package/script/src/matchers/every.js.map +1 -0
- package/script/src/matchers/including.d.ts +3 -0
- package/script/src/matchers/including.d.ts.map +1 -0
- package/{dist/cjs → script/src}/matchers/including.js +3 -4
- package/script/src/matchers/including.js.map +1 -0
- package/script/src/matchers/matching.d.ts +3 -0
- package/script/src/matchers/matching.d.ts.map +1 -0
- package/{dist/cjs → script/src}/matchers/matching.js +3 -4
- package/script/src/matchers/matching.js.map +1 -0
- package/script/src/matchers/not.d.ts +3 -0
- package/script/src/matchers/not.d.ts.map +1 -0
- package/script/src/matchers/not.js +18 -0
- package/script/src/matchers/not.js.map +1 -0
- package/script/src/matchers/or.d.ts +3 -0
- package/script/src/matchers/or.d.ts.map +1 -0
- package/script/src/matchers/or.js +18 -0
- package/script/src/matchers/or.js.map +1 -0
- package/script/src/matchers/some.d.ts +3 -0
- package/script/src/matchers/some.d.ts.map +1 -0
- package/{dist/cjs → script/src}/matchers/some.js +5 -6
- package/script/src/matchers/some.js.map +1 -0
- package/script/src/merge-objects.d.ts +2 -0
- package/script/src/merge-objects.d.ts.map +1 -0
- package/{dist/esm → script/src}/merge-objects.js.map +1 -1
- package/script/src/resolvers.d.ts +9 -0
- package/script/src/resolvers.d.ts.map +1 -0
- package/{dist/cjs → script/src}/resolvers.js +17 -18
- package/script/src/resolvers.js.map +1 -0
- package/script/src/serialize.d.ts +13 -0
- package/script/src/serialize.d.ts.map +1 -0
- package/{dist/cjs → script/src}/serialize.js +6 -8
- package/script/src/serialize.js.map +1 -0
- package/script/src/specification.d.ts +216 -0
- package/script/src/specification.d.ts.map +1 -0
- package/script/src/specification.js.map +1 -0
- package/src/mod.ts +1 -0
- package/src/{constructor.ts → src/constructor.ts} +15 -15
- package/src/{converge.ts → src/converge.ts} +1 -1
- package/src/{create-interactor.ts → src/create-interactor.ts} +2 -2
- package/src/src/element/click.ts +5 -0
- package/src/{filter-set.ts → src/filter-set.ts} +2 -3
- package/src/{format.ts → src/format.ts} +2 -2
- package/src/src/index.ts +19 -0
- package/src/{inspector.ts → src/inspector.ts} +3 -3
- package/src/{interaction.ts → src/interaction.ts} +4 -4
- package/src/{locator.ts → src/locator.ts} +3 -3
- package/src/{match.ts → src/match.ts} +5 -6
- package/src/{matchers → src/matchers}/and.ts +1 -1
- package/src/{matchers → src/matchers}/every.ts +1 -1
- package/src/{matchers → src/matchers}/including.ts +1 -1
- package/src/{matchers → src/matchers}/matching.ts +1 -1
- package/src/{matchers → src/matchers}/not.ts +1 -1
- package/src/{matchers → src/matchers}/or.ts +1 -1
- package/src/{matchers → src/matchers}/some.ts +1 -1
- package/src/{resolvers.ts → src/resolvers.ts} +4 -4
- package/src/{serialize.ts → src/serialize.ts} +4 -4
- package/src/{specification.ts → src/specification.ts} +6 -6
- package/dist/cjs/constructor.js.map +0 -1
- package/dist/cjs/converge.js.map +0 -1
- package/dist/cjs/create-interactor.js.map +0 -1
- package/dist/cjs/element/click.js +0 -12
- package/dist/cjs/element/click.js.map +0 -1
- package/dist/cjs/errors.js.map +0 -1
- package/dist/cjs/escape-html.js.map +0 -1
- package/dist/cjs/filter-set.js.map +0 -1
- package/dist/cjs/format.js.map +0 -1
- package/dist/cjs/index.js.map +0 -1
- package/dist/cjs/inspector.js.map +0 -1
- package/dist/cjs/interaction.js.map +0 -1
- package/dist/cjs/locator.js +0 -19
- package/dist/cjs/locator.js.map +0 -1
- package/dist/cjs/match.js.map +0 -1
- package/dist/cjs/matcher.js.map +0 -1
- package/dist/cjs/matchers/and.js +0 -19
- package/dist/cjs/matchers/and.js.map +0 -1
- package/dist/cjs/matchers/every.js.map +0 -1
- package/dist/cjs/matchers/including.js.map +0 -1
- package/dist/cjs/matchers/matching.js.map +0 -1
- package/dist/cjs/matchers/not.js +0 -19
- package/dist/cjs/matchers/not.js.map +0 -1
- package/dist/cjs/matchers/or.js +0 -19
- package/dist/cjs/matchers/or.js.map +0 -1
- package/dist/cjs/matchers/some.js.map +0 -1
- package/dist/cjs/resolvers.js.map +0 -1
- package/dist/cjs/serialize.js.map +0 -1
- package/dist/cjs/specification.js.map +0 -1
- package/dist/constructor.d.ts.map +0 -1
- package/dist/converge.d.ts +0 -3
- package/dist/converge.d.ts.map +0 -1
- package/dist/create-interactor.d.ts.map +0 -1
- package/dist/element/click.d.ts +0 -2
- package/dist/element/click.d.ts.map +0 -1
- package/dist/errors.d.ts.map +0 -1
- package/dist/escape-html.d.ts.map +0 -1
- package/dist/esm/constructor.js.map +0 -1
- package/dist/esm/converge.js.map +0 -1
- package/dist/esm/create-interactor.js.map +0 -1
- package/dist/esm/element/click.js +0 -5
- package/dist/esm/element/click.js.map +0 -1
- package/dist/esm/errors.js +0 -25
- package/dist/esm/errors.js.map +0 -1
- package/dist/esm/escape-html.js.map +0 -1
- package/dist/esm/filter-set.js.map +0 -1
- package/dist/esm/format.js.map +0 -1
- package/dist/esm/index.js +0 -13
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/inspector.js.map +0 -1
- package/dist/esm/interaction.js.map +0 -1
- package/dist/esm/locator.js +0 -15
- package/dist/esm/locator.js.map +0 -1
- package/dist/esm/match.js.map +0 -1
- package/dist/esm/matcher.js.map +0 -1
- package/dist/esm/matchers/and.js.map +0 -1
- package/dist/esm/matchers/every.js.map +0 -1
- package/dist/esm/matchers/including.js.map +0 -1
- package/dist/esm/matchers/matching.js.map +0 -1
- package/dist/esm/matchers/not.js.map +0 -1
- package/dist/esm/matchers/or.js.map +0 -1
- package/dist/esm/matchers/some.js.map +0 -1
- package/dist/esm/resolvers.js.map +0 -1
- package/dist/esm/serialize.js.map +0 -1
- package/dist/esm/specification.js.map +0 -1
- package/dist/filter-set.d.ts.map +0 -1
- package/dist/format.d.ts.map +0 -1
- package/dist/index.d.ts +0 -17
- package/dist/index.d.ts.map +0 -1
- package/dist/inspector.d.ts.map +0 -1
- package/dist/interaction.d.ts.map +0 -1
- package/dist/locator.d.ts.map +0 -1
- package/dist/match.d.ts.map +0 -1
- package/dist/matcher.d.ts.map +0 -1
- package/dist/matchers/and.d.ts +0 -3
- package/dist/matchers/and.d.ts.map +0 -1
- package/dist/matchers/every.d.ts +0 -3
- package/dist/matchers/every.d.ts.map +0 -1
- package/dist/matchers/including.d.ts +0 -3
- package/dist/matchers/including.d.ts.map +0 -1
- package/dist/matchers/matching.d.ts +0 -3
- package/dist/matchers/matching.d.ts.map +0 -1
- package/dist/matchers/not.d.ts +0 -3
- package/dist/matchers/not.d.ts.map +0 -1
- package/dist/matchers/or.d.ts +0 -3
- package/dist/matchers/or.d.ts.map +0 -1
- package/dist/matchers/some.d.ts +0 -3
- package/dist/matchers/some.d.ts.map +0 -1
- package/dist/merge-objects.d.ts.map +0 -1
- package/dist/resolvers.d.ts.map +0 -1
- package/dist/serialize.d.ts.map +0 -1
- package/dist/specification.d.ts.map +0 -1
- package/dist/tsconfig.build.tsbuildinfo +0 -1
- package/src/element/click.ts +0 -5
- package/src/index.ts +0 -18
- /package/{dist/esm → esm/src}/converge.js +0 -0
- /package/{dist → esm/src}/errors.d.ts +0 -0
- /package/{dist → esm/src}/escape-html.d.ts +0 -0
- /package/{dist/esm → esm/src}/escape-html.js +0 -0
- /package/{dist/esm → esm/src}/format.js +0 -0
- /package/{dist → esm/src}/matcher.d.ts +0 -0
- /package/{dist/esm → esm/src}/matcher.js +0 -0
- /package/{dist → esm/src}/merge-objects.d.ts +0 -0
- /package/{dist/esm → esm/src}/merge-objects.js +0 -0
- /package/{dist/esm → esm/src}/specification.js +0 -0
- /package/{dist/cjs → script/src}/merge-objects.js +0 -0
- /package/{dist/cjs → script/src}/specification.js +0 -0
- /package/src/{errors.ts → src/errors.ts} +0 -0
- /package/src/{escape-html.ts → src/escape-html.ts} +0 -0
- /package/src/{matcher.ts → src/matcher.ts} +0 -0
- /package/src/{merge-objects.ts → src/merge-objects.ts} +0 -0
|
@@ -1,28 +1,28 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.click = exports.every = exports.some = exports.not = exports.or = exports.and = exports.matching = exports.including = exports.isVisible = exports.createInspector = exports.createInteractor = exports.isInteraction = void 0;
|
|
4
|
-
var
|
|
5
|
-
Object.defineProperty(exports, "isInteraction", { enumerable: true, get: function () { return
|
|
6
|
-
var
|
|
7
|
-
Object.defineProperty(exports, "createInteractor", { enumerable: true, get: function () { return
|
|
8
|
-
var
|
|
9
|
-
Object.defineProperty(exports, "createInspector", { enumerable: true, get: function () { return
|
|
4
|
+
var interaction_js_1 = require("./interaction.js");
|
|
5
|
+
Object.defineProperty(exports, "isInteraction", { enumerable: true, get: function () { return interaction_js_1.isInteraction; } });
|
|
6
|
+
var create_interactor_js_1 = require("./create-interactor.js");
|
|
7
|
+
Object.defineProperty(exports, "createInteractor", { enumerable: true, get: function () { return create_interactor_js_1.createInteractor; } });
|
|
8
|
+
var inspector_js_1 = require("./inspector.js");
|
|
9
|
+
Object.defineProperty(exports, "createInspector", { enumerable: true, get: function () { return inspector_js_1.createInspector; } });
|
|
10
10
|
var element_is_visible_1 = require("element-is-visible");
|
|
11
11
|
Object.defineProperty(exports, "isVisible", { enumerable: true, get: function () { return element_is_visible_1.isVisible; } });
|
|
12
|
-
var
|
|
13
|
-
Object.defineProperty(exports, "including", { enumerable: true, get: function () { return
|
|
14
|
-
var
|
|
15
|
-
Object.defineProperty(exports, "matching", { enumerable: true, get: function () { return
|
|
16
|
-
var
|
|
17
|
-
Object.defineProperty(exports, "and", { enumerable: true, get: function () { return
|
|
18
|
-
var
|
|
19
|
-
Object.defineProperty(exports, "or", { enumerable: true, get: function () { return
|
|
20
|
-
var
|
|
21
|
-
Object.defineProperty(exports, "not", { enumerable: true, get: function () { return
|
|
22
|
-
var
|
|
23
|
-
Object.defineProperty(exports, "some", { enumerable: true, get: function () { return
|
|
24
|
-
var
|
|
25
|
-
Object.defineProperty(exports, "every", { enumerable: true, get: function () { return
|
|
26
|
-
var
|
|
27
|
-
Object.defineProperty(exports, "click", { enumerable: true, get: function () { return
|
|
12
|
+
var including_js_1 = require("./matchers/including.js");
|
|
13
|
+
Object.defineProperty(exports, "including", { enumerable: true, get: function () { return including_js_1.including; } });
|
|
14
|
+
var matching_js_1 = require("./matchers/matching.js");
|
|
15
|
+
Object.defineProperty(exports, "matching", { enumerable: true, get: function () { return matching_js_1.matching; } });
|
|
16
|
+
var and_js_1 = require("./matchers/and.js");
|
|
17
|
+
Object.defineProperty(exports, "and", { enumerable: true, get: function () { return and_js_1.and; } });
|
|
18
|
+
var or_js_1 = require("./matchers/or.js");
|
|
19
|
+
Object.defineProperty(exports, "or", { enumerable: true, get: function () { return or_js_1.or; } });
|
|
20
|
+
var not_js_1 = require("./matchers/not.js");
|
|
21
|
+
Object.defineProperty(exports, "not", { enumerable: true, get: function () { return not_js_1.not; } });
|
|
22
|
+
var some_js_1 = require("./matchers/some.js");
|
|
23
|
+
Object.defineProperty(exports, "some", { enumerable: true, get: function () { return some_js_1.some; } });
|
|
24
|
+
var every_js_1 = require("./matchers/every.js");
|
|
25
|
+
Object.defineProperty(exports, "every", { enumerable: true, get: function () { return every_js_1.every; } });
|
|
26
|
+
var click_js_1 = require("./element/click.js");
|
|
27
|
+
Object.defineProperty(exports, "click", { enumerable: true, get: function () { return click_js_1.click; } });
|
|
28
28
|
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/src/index.ts"],"names":[],"mappings":";;;AAEA,mDAAgD;AAAvC,+GAAA,aAAa,OAAA;AACtB,+DAA0D;AAAjD,wHAAA,gBAAgB,OAAA;AACzB,+CAAgD;AAAvC,+GAAA,eAAe,OAAA;AACxB,yDAA+C;AAAtC,+GAAA,SAAS,OAAA;AAGlB,wDAAoD;AAA3C,yGAAA,SAAS,OAAA;AAClB,sDAAkD;AAAzC,uGAAA,QAAQ,OAAA;AACjB,4CAAwC;AAA/B,6FAAA,GAAG,OAAA;AACZ,0CAAsC;AAA7B,2FAAA,EAAE,OAAA;AACX,4CAAwC;AAA/B,6FAAA,GAAG,OAAA;AACZ,8CAA0C;AAAjC,+FAAA,IAAI,OAAA;AACb,gDAA4C;AAAnC,iGAAA,KAAK,OAAA;AAEd,+CAA2C;AAAlC,iGAAA,KAAK,OAAA"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { Interactor, InteractorConstructor, FilterParams } from "./specification.js";
|
|
2
|
+
type GetElement<I extends InteractorConstructor<any, any, any, any>> = I extends InteractorConstructor<infer E, any, any, any> ? E : never;
|
|
3
|
+
type GetFilters<I extends InteractorConstructor<any, any, any, any>> = I extends InteractorConstructor<any, infer F, any, any> ? F : never;
|
|
4
|
+
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 Omit<Interactor<E, FP>, 'find'> {
|
|
6
|
+
element: E;
|
|
7
|
+
find<T extends InteractorConstructor<any, any, any, any>>(interactor: T): Inspector<T>;
|
|
8
|
+
}
|
|
9
|
+
export interface Inspector<C extends InteractorConstructor<any, any, any, any>> {
|
|
10
|
+
/**
|
|
11
|
+
* Finds all matched by selector elements and wraps each of them to intreactor
|
|
12
|
+
*/
|
|
13
|
+
all(): (InteractorInspector<GetElement<C>, GetFilters<C>> & GetActions<C>)[];
|
|
14
|
+
}
|
|
15
|
+
export declare function createInspector<IC extends InteractorConstructor<any, any, any, any>>(constructor: IC, parentElement?: Element): Inspector<IC>;
|
|
16
|
+
export {};
|
|
17
|
+
//# sourceMappingURL=inspector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inspector.d.ts","sourceRoot":"","sources":["../../src/src/inspector.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAW,qBAAqB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEnG,KAAK,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,KAAK,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,KAAK,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"}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.createInspector =
|
|
5
|
-
const
|
|
6
|
-
const
|
|
4
|
+
exports.createInspector = createInspector;
|
|
5
|
+
const constructor_js_1 = require("./constructor.js");
|
|
6
|
+
const resolvers_js_1 = require("./resolvers.js");
|
|
7
7
|
function createInspector(constructor, parentElement) {
|
|
8
8
|
// NOTE: Wait for https://github.com/thefrontside/bigtest/pull/895 to use specification instead
|
|
9
9
|
let options = constructor().options;
|
|
10
10
|
return {
|
|
11
11
|
all() {
|
|
12
|
-
let elements = (0,
|
|
13
|
-
return elements.map(element => (Object.assign((0,
|
|
12
|
+
let elements = (0, resolvers_js_1.findElements)(parentElement ?? (0, resolvers_js_1.unsafeSyncResolveParent)(options), options);
|
|
13
|
+
return elements.map(element => (Object.assign((0, constructor_js_1.instantiateInteractor)(options, () => element), {
|
|
14
14
|
element,
|
|
15
15
|
find(constructor) {
|
|
16
16
|
return createInspector(constructor, element);
|
|
@@ -19,5 +19,4 @@ function createInspector(constructor, parentElement) {
|
|
|
19
19
|
}
|
|
20
20
|
};
|
|
21
21
|
}
|
|
22
|
-
exports.createInspector = createInspector;
|
|
23
22
|
//# sourceMappingURL=inspector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inspector.js","sourceRoot":"","sources":["../../src/src/inspector.ts"],"names":[],"mappings":";AAAA,uDAAuD;;AAsBvD,0CAoBC;AAxCD,qDAAyD;AACzD,iDAAsE;AAmBtE,SAAgB,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,IAAA,2BAAY,EAAiB,aAAa,IAAI,IAAA,sCAAuB,EAAC,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC;YACxG,OAAO,QAAQ,CAAC,GAAG,CACjB,OAAO,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CACvB,IAAA,sCAAqB,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAsF,EAAE;gBACpI,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"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { type Operation, type Task } from '@effection/core';
|
|
2
|
+
import { type InteractionOptions as SerializedInteractionOptions, type InteractionType } from '@interactors/globals';
|
|
3
|
+
import type { Interactor, FilterObject, FilterFn, FilterParams } from './specification.js';
|
|
4
|
+
declare const interactionSymbol: unique symbol;
|
|
5
|
+
export declare function isInteraction(x: unknown): x is Interaction<Element, unknown>;
|
|
6
|
+
/**
|
|
7
|
+
* An interaction represents some type of action or assertion that can be
|
|
8
|
+
* taken on an {@link Interactor}.
|
|
9
|
+
*
|
|
10
|
+
* The interaction can function as a lazy promise. That means that calling
|
|
11
|
+
* `then` on the interaction or awaiting it using `await`, will run the
|
|
12
|
+
* interaction and the promise will resolve once the action is complete.
|
|
13
|
+
* However, an interaction which is not awaited will not run by itself.
|
|
14
|
+
*
|
|
15
|
+
* @typeParam T the return value of the promise that this interaction evaluates to.
|
|
16
|
+
*/
|
|
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>;
|
|
21
|
+
/**
|
|
22
|
+
* Return a description of the interaction
|
|
23
|
+
*/
|
|
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;
|
|
33
|
+
/**
|
|
34
|
+
* Perform the interaction
|
|
35
|
+
*/
|
|
36
|
+
action: () => Task<T>;
|
|
37
|
+
check?: () => Task<T>;
|
|
38
|
+
halt: () => Promise<void>;
|
|
39
|
+
[interactionSymbol]: true;
|
|
40
|
+
}
|
|
41
|
+
export interface ActionInteraction<E extends Element, T = void> extends Interaction<E, T> {
|
|
42
|
+
type: "action";
|
|
43
|
+
check: undefined;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Like {@link Interaction}, except that it is used for assertions only.
|
|
47
|
+
*
|
|
48
|
+
* @typeParam T the return value of the promise that this interaction evaluates to.
|
|
49
|
+
*/
|
|
50
|
+
export interface AssertionInteraction<E extends Element, T = void> extends Interaction<E, T> {
|
|
51
|
+
type: "assertion";
|
|
52
|
+
/**
|
|
53
|
+
* Perform the check
|
|
54
|
+
*/
|
|
55
|
+
check: () => Task<T>;
|
|
56
|
+
}
|
|
57
|
+
export 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>;
|
|
69
|
+
export {};
|
|
70
|
+
//# sourceMappingURL=interaction.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interaction.d.ts","sourceRoot":"","sources":["../../src/src/interaction.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.isInteraction = isInteraction;
|
|
4
|
+
exports.createInteraction = createInteraction;
|
|
4
5
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
5
6
|
const core_1 = require("@effection/core");
|
|
6
7
|
const globals_1 = require("@interactors/globals");
|
|
7
|
-
const
|
|
8
|
+
const serialize_js_1 = require("./serialize.js");
|
|
8
9
|
const interactionSymbol = core_1.Symbol.for('interaction');
|
|
9
10
|
function isInteraction(x) {
|
|
10
11
|
return typeof x === 'object' && x != null && interactionSymbol in x;
|
|
11
12
|
}
|
|
12
|
-
exports.isInteraction = isInteraction;
|
|
13
13
|
function createInteraction(type, options, apply) {
|
|
14
14
|
let task;
|
|
15
15
|
let shouldCatchHalt = false;
|
|
@@ -33,12 +33,12 @@ function createInteraction(type, options, apply) {
|
|
|
33
33
|
return reason;
|
|
34
34
|
}
|
|
35
35
|
else {
|
|
36
|
-
onReject
|
|
36
|
+
onReject?.(reason);
|
|
37
37
|
return reason;
|
|
38
38
|
}
|
|
39
39
|
};
|
|
40
40
|
}
|
|
41
|
-
let serializedOptions = (0,
|
|
41
|
+
let serializedOptions = (0, serialize_js_1.serializeInteractionOptions)(type, options);
|
|
42
42
|
let interaction = {
|
|
43
43
|
type,
|
|
44
44
|
options: serializedOptions,
|
|
@@ -73,5 +73,4 @@ function createInteraction(type, options, apply) {
|
|
|
73
73
|
return interaction;
|
|
74
74
|
}
|
|
75
75
|
}
|
|
76
|
-
exports.createInteraction = createInteraction;
|
|
77
76
|
//# sourceMappingURL=interaction.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interaction.js","sourceRoot":"","sources":["../../src/src/interaction.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { FilterDefinition } from './specification.js';
|
|
2
|
+
import { type MaybeMatcher } from './matcher.js';
|
|
3
|
+
export declare class Locator<E extends Element> {
|
|
4
|
+
private definition;
|
|
5
|
+
value: MaybeMatcher<string>;
|
|
6
|
+
constructor(definition: FilterDefinition<string, E>, value: MaybeMatcher<string>);
|
|
7
|
+
get description(): string;
|
|
8
|
+
apply(element: E): string;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=locator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"locator.d.ts","sourceRoot":"","sources":["../../src/src/locator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAsB,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;AAGrE,qBAAa,OAAO,CAAC,CAAC,SAAS,OAAO;IACxB,OAAO,CAAC,UAAU;IAAsC,KAAK,EAAE,YAAY,CAAC,MAAM,CAAC;gBAA3E,UAAU,EAAE,gBAAgB,CAAC,MAAM,EAAE,CAAC,CAAC,EAAS,KAAK,EAAE,YAAY,CAAC,MAAM,CAAC;IAE/F,IAAI,WAAW,IAAI,MAAM,CAExB;IAED,KAAK,CAAC,OAAO,EAAE,CAAC,GAAG,MAAM;CAG1B"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Locator = void 0;
|
|
4
|
+
const matcher_js_1 = require("./matcher.js");
|
|
5
|
+
const match_js_1 = require("./match.js");
|
|
6
|
+
class Locator {
|
|
7
|
+
constructor(definition, value) {
|
|
8
|
+
Object.defineProperty(this, "definition", {
|
|
9
|
+
enumerable: true,
|
|
10
|
+
configurable: true,
|
|
11
|
+
writable: true,
|
|
12
|
+
value: definition
|
|
13
|
+
});
|
|
14
|
+
Object.defineProperty(this, "value", {
|
|
15
|
+
enumerable: true,
|
|
16
|
+
configurable: true,
|
|
17
|
+
writable: true,
|
|
18
|
+
value: value
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
get description() {
|
|
22
|
+
return (0, matcher_js_1.matcherDescription)(this.value);
|
|
23
|
+
}
|
|
24
|
+
apply(element) {
|
|
25
|
+
return (0, match_js_1.applyFilter)(this.definition, element);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
exports.Locator = Locator;
|
|
29
|
+
//# sourceMappingURL=locator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"locator.js","sourceRoot":"","sources":["../../src/src/locator.ts"],"names":[],"mappings":";;;AACA,6CAAqE;AACrE,yCAAyC;AAEzC,MAAa,OAAO;IAClB,YAAoB,UAAuC,EAAS,KAA2B;QAAnF;;;;mBAAQ,UAAU;WAA6B;QAAE;;;;mBAAO,KAAK;WAAsB;IAAG,CAAC;IAEnG,IAAI,WAAW;QACb,OAAO,IAAA,+BAAkB,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,OAAU;QACd,OAAO,IAAA,sBAAW,EAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAC/C,CAAC;CACF;AAVD,0BAUC"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import type { Locator } from './locator.js';
|
|
2
|
+
import type { FilterSet } from './filter-set.js';
|
|
3
|
+
import type { Filters, FilterDefinition } from './specification.js';
|
|
4
|
+
import { type MaybeMatcher } from './matcher.js';
|
|
5
|
+
export declare class Match<E extends Element, F extends Filters<E>> {
|
|
6
|
+
element: E;
|
|
7
|
+
filterSet: FilterSet<E, F>;
|
|
8
|
+
locator?: Locator<E> | undefined;
|
|
9
|
+
matchLocator?: MatchLocator<E>;
|
|
10
|
+
matchFilter: MatchFilter<E, F>;
|
|
11
|
+
constructor(element: E, filterSet: FilterSet<E, F>, locator?: Locator<E> | undefined);
|
|
12
|
+
get matches(): boolean;
|
|
13
|
+
asTableHeader(name: string): string[];
|
|
14
|
+
asTableRow(): string[];
|
|
15
|
+
get sortWeight(): number;
|
|
16
|
+
elementDescription(): string;
|
|
17
|
+
}
|
|
18
|
+
export declare class MatchLocator<E extends Element> {
|
|
19
|
+
element: E;
|
|
20
|
+
locator: Locator<E>;
|
|
21
|
+
expected: MaybeMatcher<string> | null;
|
|
22
|
+
actual: string | null;
|
|
23
|
+
constructor(element: E, locator: Locator<E>);
|
|
24
|
+
get matches(): boolean;
|
|
25
|
+
formatActual(): string;
|
|
26
|
+
description(): string;
|
|
27
|
+
get sortWeight(): number;
|
|
28
|
+
}
|
|
29
|
+
export declare class MatchFilter<E extends Element, F extends Filters<E>> {
|
|
30
|
+
element: E;
|
|
31
|
+
filter: FilterSet<E, F>;
|
|
32
|
+
items: MatchFilterItem<unknown, E, F>[];
|
|
33
|
+
constructor(element: E, filter: FilterSet<E, F>);
|
|
34
|
+
get matches(): boolean;
|
|
35
|
+
asTableRow(): string[];
|
|
36
|
+
get sortWeight(): number;
|
|
37
|
+
formatAsExpectations(): string;
|
|
38
|
+
}
|
|
39
|
+
export declare function applyFilter<T>(definition: FilterDefinition<T, any>, element: Element): T;
|
|
40
|
+
export declare class MatchFilterItem<T, E extends Element, F extends Filters<E>> {
|
|
41
|
+
element: E;
|
|
42
|
+
filter: FilterSet<E, F>;
|
|
43
|
+
key: string;
|
|
44
|
+
expected: MaybeMatcher<T>;
|
|
45
|
+
constructor(element: E, filter: FilterSet<E, F>, key: string, expected: MaybeMatcher<T>);
|
|
46
|
+
get matches(): boolean;
|
|
47
|
+
get actual(): T;
|
|
48
|
+
formatActual(): string;
|
|
49
|
+
formatExpected(): string;
|
|
50
|
+
description(): string;
|
|
51
|
+
formatAsExpectation(): string;
|
|
52
|
+
get sortWeight(): number;
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=match.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"match.d.ts","sourceRoot":"","sources":["../../src/src/match.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +1,42 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.MatchFilterItem = exports.
|
|
4
|
-
|
|
5
|
-
const
|
|
3
|
+
exports.MatchFilterItem = exports.MatchFilter = exports.MatchLocator = exports.Match = void 0;
|
|
4
|
+
exports.applyFilter = applyFilter;
|
|
5
|
+
const escape_html_js_1 = require("./escape-html.js");
|
|
6
|
+
const matcher_js_1 = require("./matcher.js");
|
|
6
7
|
const check = (value) => value ? "✓" : "⨯";
|
|
7
8
|
class Match {
|
|
8
9
|
constructor(element, filterSet, locator) {
|
|
9
|
-
this
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
Object.defineProperty(this, "element", {
|
|
11
|
+
enumerable: true,
|
|
12
|
+
configurable: true,
|
|
13
|
+
writable: true,
|
|
14
|
+
value: element
|
|
15
|
+
});
|
|
16
|
+
Object.defineProperty(this, "filterSet", {
|
|
17
|
+
enumerable: true,
|
|
18
|
+
configurable: true,
|
|
19
|
+
writable: true,
|
|
20
|
+
value: filterSet
|
|
21
|
+
});
|
|
22
|
+
Object.defineProperty(this, "locator", {
|
|
23
|
+
enumerable: true,
|
|
24
|
+
configurable: true,
|
|
25
|
+
writable: true,
|
|
26
|
+
value: locator
|
|
27
|
+
});
|
|
28
|
+
Object.defineProperty(this, "matchLocator", {
|
|
29
|
+
enumerable: true,
|
|
30
|
+
configurable: true,
|
|
31
|
+
writable: true,
|
|
32
|
+
value: void 0
|
|
33
|
+
});
|
|
34
|
+
Object.defineProperty(this, "matchFilter", {
|
|
35
|
+
enumerable: true,
|
|
36
|
+
configurable: true,
|
|
37
|
+
writable: true,
|
|
38
|
+
value: void 0
|
|
39
|
+
});
|
|
12
40
|
this.matchLocator = locator && new MatchLocator(element, locator);
|
|
13
41
|
this.matchFilter = new MatchFilter(element, filterSet);
|
|
14
42
|
}
|
|
@@ -32,13 +60,12 @@ class Match {
|
|
|
32
60
|
}
|
|
33
61
|
}
|
|
34
62
|
get sortWeight() {
|
|
35
|
-
|
|
36
|
-
return (((_a = this.matchLocator) === null || _a === void 0 ? void 0 : _a.sortWeight) || 0) + this.matchFilter.sortWeight;
|
|
63
|
+
return (this.matchLocator?.sortWeight || 0) + this.matchFilter.sortWeight;
|
|
37
64
|
}
|
|
38
65
|
elementDescription() {
|
|
39
66
|
let tag = this.element.tagName.toLowerCase();
|
|
40
67
|
let attrs = Array.from(this.element.attributes).map((attr) => {
|
|
41
|
-
return `${attr.name}="${(0,
|
|
68
|
+
return `${attr.name}="${(0, escape_html_js_1.escapeHtml)(attr.value)}"`;
|
|
42
69
|
});
|
|
43
70
|
return `<${[tag, ...attrs].join(' ')}>`;
|
|
44
71
|
}
|
|
@@ -46,13 +73,35 @@ class Match {
|
|
|
46
73
|
exports.Match = Match;
|
|
47
74
|
class MatchLocator {
|
|
48
75
|
constructor(element, locator) {
|
|
49
|
-
this
|
|
50
|
-
|
|
76
|
+
Object.defineProperty(this, "element", {
|
|
77
|
+
enumerable: true,
|
|
78
|
+
configurable: true,
|
|
79
|
+
writable: true,
|
|
80
|
+
value: element
|
|
81
|
+
});
|
|
82
|
+
Object.defineProperty(this, "locator", {
|
|
83
|
+
enumerable: true,
|
|
84
|
+
configurable: true,
|
|
85
|
+
writable: true,
|
|
86
|
+
value: locator
|
|
87
|
+
});
|
|
88
|
+
Object.defineProperty(this, "expected", {
|
|
89
|
+
enumerable: true,
|
|
90
|
+
configurable: true,
|
|
91
|
+
writable: true,
|
|
92
|
+
value: void 0
|
|
93
|
+
});
|
|
94
|
+
Object.defineProperty(this, "actual", {
|
|
95
|
+
enumerable: true,
|
|
96
|
+
configurable: true,
|
|
97
|
+
writable: true,
|
|
98
|
+
value: void 0
|
|
99
|
+
});
|
|
51
100
|
this.expected = locator.value;
|
|
52
101
|
this.actual = locator.apply(element);
|
|
53
102
|
}
|
|
54
103
|
get matches() {
|
|
55
|
-
return (0,
|
|
104
|
+
return (0, matcher_js_1.applyMatcher)(this.expected, this.actual);
|
|
56
105
|
}
|
|
57
106
|
formatActual() {
|
|
58
107
|
return JSON.stringify(this.actual);
|
|
@@ -67,8 +116,24 @@ class MatchLocator {
|
|
|
67
116
|
exports.MatchLocator = MatchLocator;
|
|
68
117
|
class MatchFilter {
|
|
69
118
|
constructor(element, filter) {
|
|
70
|
-
this
|
|
71
|
-
|
|
119
|
+
Object.defineProperty(this, "element", {
|
|
120
|
+
enumerable: true,
|
|
121
|
+
configurable: true,
|
|
122
|
+
writable: true,
|
|
123
|
+
value: element
|
|
124
|
+
});
|
|
125
|
+
Object.defineProperty(this, "filter", {
|
|
126
|
+
enumerable: true,
|
|
127
|
+
configurable: true,
|
|
128
|
+
writable: true,
|
|
129
|
+
value: filter
|
|
130
|
+
});
|
|
131
|
+
Object.defineProperty(this, "items", {
|
|
132
|
+
enumerable: true,
|
|
133
|
+
configurable: true,
|
|
134
|
+
writable: true,
|
|
135
|
+
value: void 0
|
|
136
|
+
});
|
|
72
137
|
this.items = Object.entries(filter.all).map(([key, expected]) => {
|
|
73
138
|
return new MatchFilterItem(element, filter, key, expected);
|
|
74
139
|
});
|
|
@@ -87,7 +152,6 @@ class MatchFilter {
|
|
|
87
152
|
}
|
|
88
153
|
}
|
|
89
154
|
exports.MatchFilter = MatchFilter;
|
|
90
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
91
155
|
function applyFilter(definition, element) {
|
|
92
156
|
if (typeof (definition) === 'function') {
|
|
93
157
|
return definition(element);
|
|
@@ -96,16 +160,35 @@ function applyFilter(definition, element) {
|
|
|
96
160
|
return definition.apply(element);
|
|
97
161
|
}
|
|
98
162
|
}
|
|
99
|
-
exports.applyFilter = applyFilter;
|
|
100
163
|
class MatchFilterItem {
|
|
101
164
|
constructor(element, filter, key, expected) {
|
|
102
|
-
this
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
165
|
+
Object.defineProperty(this, "element", {
|
|
166
|
+
enumerable: true,
|
|
167
|
+
configurable: true,
|
|
168
|
+
writable: true,
|
|
169
|
+
value: element
|
|
170
|
+
});
|
|
171
|
+
Object.defineProperty(this, "filter", {
|
|
172
|
+
enumerable: true,
|
|
173
|
+
configurable: true,
|
|
174
|
+
writable: true,
|
|
175
|
+
value: filter
|
|
176
|
+
});
|
|
177
|
+
Object.defineProperty(this, "key", {
|
|
178
|
+
enumerable: true,
|
|
179
|
+
configurable: true,
|
|
180
|
+
writable: true,
|
|
181
|
+
value: key
|
|
182
|
+
});
|
|
183
|
+
Object.defineProperty(this, "expected", {
|
|
184
|
+
enumerable: true,
|
|
185
|
+
configurable: true,
|
|
186
|
+
writable: true,
|
|
187
|
+
value: expected
|
|
188
|
+
});
|
|
106
189
|
}
|
|
107
190
|
get matches() {
|
|
108
|
-
return (0,
|
|
191
|
+
return (0, matcher_js_1.applyMatcher)(this.expected, this.actual);
|
|
109
192
|
}
|
|
110
193
|
get actual() {
|
|
111
194
|
if (this.filter.specification.filters && this.filter.specification.filters[this.key]) {
|
|
@@ -125,7 +208,7 @@ class MatchFilterItem {
|
|
|
125
208
|
return JSON.stringify(this.actual);
|
|
126
209
|
}
|
|
127
210
|
formatExpected() {
|
|
128
|
-
return (0,
|
|
211
|
+
return (0, matcher_js_1.matcherDescription)(this.expected);
|
|
129
212
|
}
|
|
130
213
|
description() {
|
|
131
214
|
return `${check(this.matches)} ${this.formatActual()}`;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"match.js","sourceRoot":"","sources":["../../src/src/match.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export interface Matcher<T> {
|
|
2
|
+
match(actual: T): boolean;
|
|
3
|
+
description(): string;
|
|
4
|
+
code?(): string;
|
|
5
|
+
}
|
|
6
|
+
export type MaybeMatcher<T> = Matcher<T> | T;
|
|
7
|
+
export declare function isMatcher<T>(value: MaybeMatcher<T>): value is Matcher<T>;
|
|
8
|
+
export declare function matcherDescription<T>(value: MaybeMatcher<T>): string;
|
|
9
|
+
export declare function applyMatcher<T>(value: MaybeMatcher<T>, actual: T): boolean;
|
|
10
|
+
export declare function matcherCode<T>(value: MaybeMatcher<T>): string;
|
|
11
|
+
//# sourceMappingURL=matcher.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"matcher.d.ts","sourceRoot":"","sources":["../../src/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,MAAM,MAAM,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"}
|
|
@@ -3,12 +3,14 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.
|
|
6
|
+
exports.isMatcher = isMatcher;
|
|
7
|
+
exports.matcherDescription = matcherDescription;
|
|
8
|
+
exports.applyMatcher = applyMatcher;
|
|
9
|
+
exports.matcherCode = matcherCode;
|
|
7
10
|
const lodash_isequal_1 = __importDefault(require("lodash.isequal"));
|
|
8
11
|
function isMatcher(value) {
|
|
9
12
|
return value && typeof value.match === 'function' && typeof value.description === 'function';
|
|
10
13
|
}
|
|
11
|
-
exports.isMatcher = isMatcher;
|
|
12
14
|
function matcherDescription(value) {
|
|
13
15
|
if (isMatcher(value)) {
|
|
14
16
|
return value.description();
|
|
@@ -17,7 +19,6 @@ function matcherDescription(value) {
|
|
|
17
19
|
return JSON.stringify(value);
|
|
18
20
|
}
|
|
19
21
|
}
|
|
20
|
-
exports.matcherDescription = matcherDescription;
|
|
21
22
|
function applyMatcher(value, actual) {
|
|
22
23
|
if (isMatcher(value)) {
|
|
23
24
|
return value.match(actual);
|
|
@@ -26,7 +27,6 @@ function applyMatcher(value, actual) {
|
|
|
26
27
|
return (0, lodash_isequal_1.default)(value, actual);
|
|
27
28
|
}
|
|
28
29
|
}
|
|
29
|
-
exports.applyMatcher = applyMatcher;
|
|
30
30
|
function matcherCode(value) {
|
|
31
31
|
if (isMatcher(value) && value.code) {
|
|
32
32
|
return value.code();
|
|
@@ -38,5 +38,4 @@ function matcherCode(value) {
|
|
|
38
38
|
return JSON.stringify(value);
|
|
39
39
|
}
|
|
40
40
|
}
|
|
41
|
-
exports.matcherCode = matcherCode;
|
|
42
41
|
//# sourceMappingURL=matcher.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"matcher.js","sourceRoot":"","sources":["../../src/src/matcher.ts"],"names":[],"mappings":";;;;;AAUA,8BAEC;AAED,gDAMC;AAED,oCAMC;AAED,kCAQC;AAtCD,oEAAqC;AAUrC,SAAgB,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,SAAgB,kBAAkB,CAAI,KAAsB;IAC1D,IAAG,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;QACpB,OAAO,KAAK,CAAC,WAAW,EAAE,CAAC;IAC7B,CAAC;SAAM,CAAC;QACN,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;AACH,CAAC;AAED,SAAgB,YAAY,CAAI,KAAsB,EAAE,MAAS;IAC/D,IAAG,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;QACpB,OAAO,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC;SAAM,CAAC;QACN,OAAO,IAAA,wBAAO,EAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAChC,CAAC;AACH,CAAC;AAED,SAAgB,WAAW,CAAI,KAAsB;IACnD,IAAI,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;QACnC,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC;IACtB,CAAC;SAAM,IAAI,KAAK,YAAY,MAAM,EAAE,CAAC;QACnC,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC;IAC1B,CAAC;SAAM,CAAC;QACN,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"and.d.ts","sourceRoot":"","sources":["../../../src/src/matchers/and.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,YAAY,EAAiD,MAAM,eAAe,CAAC;AAE/G,wBAAgB,GAAG,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAY7D"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.and = and;
|
|
4
|
+
const matcher_js_1 = require("../matcher.js");
|
|
5
|
+
function and(...args) {
|
|
6
|
+
return {
|
|
7
|
+
match(actual) {
|
|
8
|
+
return args.every((matcher) => (0, matcher_js_1.applyMatcher)(matcher, actual));
|
|
9
|
+
},
|
|
10
|
+
description() {
|
|
11
|
+
return args.map(matcher_js_1.matcherDescription).join(' and ');
|
|
12
|
+
},
|
|
13
|
+
code() {
|
|
14
|
+
return `and(${args.map(arg => (0, matcher_js_1.matcherCode)(arg)).join(', ')})`;
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=and.js.map
|