@progress/kendo-e2e 1.4.0 → 1.4.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/LICENSE.md +5 -5
- package/README.md +189 -189
- package/dist/a11y/a11y-wct-spec.d.ts +1 -1
- package/dist/components/grid.js +3 -3
- package/dist/components/grid.js.map +1 -1
- package/dist/components/index.js +5 -1
- package/dist/components/index.js.map +1 -1
- package/dist/index.js +5 -1
- package/dist/index.js.map +1 -1
- package/dist/rendering/html-comparer.d.ts +2 -2
- package/dist/rendering/html-comparer.js +21 -7
- package/dist/rendering/html-comparer.js.map +1 -1
- package/dist/selenium/conditions.d.ts +1 -1
- package/dist/selenium/index.js +5 -1
- package/dist/selenium/index.js.map +1 -1
- package/dist/settings/index.js +5 -1
- package/dist/settings/index.js.map +1 -1
- package/dist/snapshot-image/snapshot-image.d.ts +2 -2
- package/dist/snapshot-image/snapshot-image.js +9 -5
- package/dist/snapshot-image/snapshot-image.js.map +1 -1
- package/dist/snapshot-markup/filter-attributes.js +1 -1
- package/dist/snapshot-markup/filter-attributes.js.map +1 -1
- package/dist/snapshot-markup/filter-attributes.spec.js +19 -19
- package/dist/snapshot-markup/filter-attributes.spec.js.map +1 -1
- package/dist/snapshot-markup/filter-comment-nodes.js +1 -1
- package/dist/snapshot-markup/filter-comment-nodes.js.map +1 -1
- package/dist/snapshot-markup/html-template.js +10 -10
- package/dist/snapshot-markup/snapshot-markup.d.ts +2 -2
- package/dist/snapshot-markup/snapshot-markup.js +6 -6
- package/dist/snapshot-markup/snapshot-markup.js.map +1 -1
- package/dist/snapshot-markup/visual-test-template.js +13 -13
- package/package.json +26 -31
package/LICENSE.md
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
Copyright © 2021 Telerik AD. All rights reserved.
|
|
2
|
-
|
|
3
|
-
This is commercial software. To use it, you need to agree to the [**Telerik End User License Agreement for Kendo UI Complete**](http://www.telerik.com/purchase/license-agreement/kendo-ui-complete). If you do not own a commercial license, this file shall be governed by the trial license terms.
|
|
4
|
-
|
|
5
|
-
All available Kendo UI commercial licenses may be obtained at http://www.telerik.com/purchase/kendo-ui.
|
|
1
|
+
Copyright © 2021 Telerik AD. All rights reserved.
|
|
2
|
+
|
|
3
|
+
This is commercial software. To use it, you need to agree to the [**Telerik End User License Agreement for Kendo UI Complete**](http://www.telerik.com/purchase/license-agreement/kendo-ui-complete). If you do not own a commercial license, this file shall be governed by the trial license terms.
|
|
4
|
+
|
|
5
|
+
All available Kendo UI commercial licenses may be obtained at http://www.telerik.com/purchase/kendo-ui.
|
package/README.md
CHANGED
|
@@ -1,189 +1,189 @@
|
|
|
1
|
-
|
|
2
|
-

|
|
3
|
-
|
|
4
|
-
## Professional Grade UI Components
|
|
5
|
-
|
|
6
|
-
This package is part of the [Kendo UI for Angular](https://www.telerik.com/kendo-angular-ui/) and [KendoReact](https://www.telerik.com/kendo-react-ui/components/#react-components) suites.
|
|
7
|
-
|
|
8
|
-
## License
|
|
9
|
-
|
|
10
|
-
This is commercial software. To use it, you need to agree to the [**Telerik End User License Agreement for Kendo UI** (for Kendo UI for Angular)](http://www.telerik.com/purchase/license-agreement/kendo-ui) or to the [**End User License Agreement for Progress KendoReact** (for KendoReact)](https://www.telerik.com/purchase/license-agreement/progress-kendoreact). If you do not own a commercial license, this file shall be governed by the trial license terms.
|
|
11
|
-
|
|
12
|
-
All available Kendo UI commercial licenses may be obtained at http://www.telerik.com/purchase/kendo-ui.
|
|
13
|
-
|
|
14
|
-
## Kendo UI for Angular Resources and Feedback
|
|
15
|
-
|
|
16
|
-
- [Get Started](https://www.telerik.com/kendo-angular-ui/getting-started)
|
|
17
|
-
- [Component References](https://www.telerik.com/kendo-angular-ui/components)
|
|
18
|
-
- [Blogs](http://www.telerik.com/blogs/kendo-ui)
|
|
19
|
-
- [FAQ](https://www.telerik.com/kendo-angular-ui/components/faq/)
|
|
20
|
-
- [GitHub Issues](https://github.com/telerik/kendo-angular/issues)
|
|
21
|
-
- [Feedback Portal](http://kendoui-feedback.telerik.com/forums/555517-kendo-ui-for-angular-2-feedback)
|
|
22
|
-
- [StackOverflow](https://stackoverflow.com/questions/tagged/kendo-ui-angular2)
|
|
23
|
-
|
|
24
|
-
## KendoReact Resources and Feedback
|
|
25
|
-
|
|
26
|
-
- [Get Started](https://www.telerik.com/kendo-react-ui/getting-started)
|
|
27
|
-
- [Component References](https://www.telerik.com/kendo-react-ui/components/#react-components)
|
|
28
|
-
- [Blogs](http://www.telerik.com/blogs/kendo-ui)
|
|
29
|
-
- [GitHub Issues](https://github.com/telerik/kendo-react/issues)
|
|
30
|
-
- [Feedback Portal](http://kendoui-feedback.telerik.com/forums/908425-kendo-ui-for-react-feedback)
|
|
31
|
-
- [StackOverflow](https://stackoverflow.com/questions/tagged/kendo-react-ui)
|
|
32
|
-
|
|
33
|
-
*Copyright © 2021 Progress Software Corporation and/or its subsidiaries or affiliates. All Rights Reserved.*
|
|
34
|
-
|
|
35
|
-
*Progress, Telerik, and certain product names used herein are trademarks or registered trademarks of Progress Software Corporation and/or one of its subsidiaries or affiliates in the U.S. and/or other countries.*
|
|
36
|
-
|
|
37
|
-
# kendo-e2e
|
|
38
|
-
|
|
39
|
-
Selenium based e2e testing for web.
|
|
40
|
-
|
|
41
|
-
## Usage
|
|
42
|
-
|
|
43
|
-
### Managing browser drivers
|
|
44
|
-
|
|
45
|
-
This framework do not manage browser drivers, so user should take care appropriate driver to be in `PATH`.
|
|
46
|
-
|
|
47
|
-
#### Linux and macOS
|
|
48
|
-
|
|
49
|
-
Install drivers globally:
|
|
50
|
-
|
|
51
|
-
```bash
|
|
52
|
-
npm i -g chromedriver
|
|
53
|
-
npm i -g geckodriver
|
|
54
|
-
```
|
|
55
|
-
|
|
56
|
-
Notes:
|
|
57
|
-
|
|
58
|
-
- `safaridriver` is build-in in macOS so no need to install extra packages.
|
|
59
|
-
- No need to add something in the `PATH` (scripts of global npm packages are already in the PATH).
|
|
60
|
-
|
|
61
|
-
#### Windows
|
|
62
|
-
|
|
63
|
-
Install drivers globally:
|
|
64
|
-
|
|
65
|
-
```bash
|
|
66
|
-
npm i -g chromedriver
|
|
67
|
-
npm i -g geckodriver
|
|
68
|
-
npm i -g msedgedriver
|
|
69
|
-
```
|
|
70
|
-
|
|
71
|
-
Add following to your `PATH`:
|
|
72
|
-
|
|
73
|
-
- `%APPDATA%\npm\node_modules\chromedriver\lib\chromedriver`
|
|
74
|
-
- `%APPDATA%\npm\node_modules\msedgedriver\lib\msedgedriver`
|
|
75
|
-
- `%APPDATA%\npm\node_modules\geckodriver`
|
|
76
|
-
|
|
77
|
-
### Managing browsers
|
|
78
|
-
|
|
79
|
-
Example:
|
|
80
|
-
|
|
81
|
-
```javascript
|
|
82
|
-
const browser = new Browser();
|
|
83
|
-
await browser.navigateTo("https://www.telerik.com/")
|
|
84
|
-
await browser.close();
|
|
85
|
-
```
|
|
86
|
-
|
|
87
|
-
By default it will start Chrome browser with size 1366x768.
|
|
88
|
-
|
|
89
|
-
Browser type and size can be controlled by settings following environment variables:
|
|
90
|
-
|
|
91
|
-
- `BROWSER_NAME`
|
|
92
|
-
|
|
93
|
-
Allowed values are `chrome`, `firefox`, `MicrosoftEdge` and `safari` (default is `chrome`).
|
|
94
|
-
|
|
95
|
-
- `BROWSER_WIDTH` and `BROWSER_HEIGHT`
|
|
96
|
-
|
|
97
|
-
Default values are `1366` and `768`.
|
|
98
|
-
|
|
99
|
-
- `HEADLESS`
|
|
100
|
-
|
|
101
|
-
If set to `true` it will start browsers in headless mode (default is `false`).
|
|
102
|
-
|
|
103
|
-
Notes: `Safari` do not support headless mode and this setting will be ignored.
|
|
104
|
-
|
|
105
|
-
### Testing on Real Mobile Devices @BrowserStack
|
|
106
|
-
|
|
107
|
-
Testing on mobile devices is also important, but usually it is hard to do it locally because:
|
|
108
|
-
|
|
109
|
-
- Mobile devices are expensive
|
|
110
|
-
- Local labs do not work well in case employees are distributed
|
|
111
|
-
|
|
112
|
-
That is why we implemented [BrowserStack](https://www.browserstack.com/) support.
|
|
113
|
-
|
|
114
|
-
Running tests on BrowserStack is similar to ruining them locally, we just need to tell what device and capabilities we need.
|
|
115
|
-
|
|
116
|
-
Configuration happens via environment variables:
|
|
117
|
-
|
|
118
|
-
```bash
|
|
119
|
-
export BROWSER_NAME=remote
|
|
120
|
-
export BS_USER_NAME=<your browser stack user id>
|
|
121
|
-
export BS_ACCESS_KEY=<your browser stack access key>
|
|
122
|
-
export BS_BROWSER_NAME=<Android|iPhone> (default is "Android")
|
|
123
|
-
export BS_BROWSER_NAME=<version of the mobile os> (default is "10.0")
|
|
124
|
-
export BS_DEVICE_NAME=<name of device> (default is "Google Pixel 4")
|
|
125
|
-
export BS_REAL_MOBILE=<true|false> (default is "true")
|
|
126
|
-
export BS_LOCAL=<true|false> (default is "false")
|
|
127
|
-
export BS_BUILD_NAME=<string> (default is "BStack Test")
|
|
128
|
-
export BS_BUILD_NUMBER=<string> (default is "BStack Build 1")
|
|
129
|
-
```
|
|
130
|
-
|
|
131
|
-
To check available mobile devices and capabilities please visit [this](https://www.browserstack.com/automate/capabilities) page.
|
|
132
|
-
|
|
133
|
-
### Find Elements and Wait for Conditions
|
|
134
|
-
|
|
135
|
-
Selenium default behavior when you search for element is to return it if available and throw if not available (do not try to wait until element is available).
|
|
136
|
-
|
|
137
|
-
To make writing e2e tests easier and tests more stable in `kendo-e2e` we have:
|
|
138
|
-
|
|
139
|
-
```js
|
|
140
|
-
const element = await browser.find(locator, timeout);
|
|
141
|
-
```
|
|
142
|
-
|
|
143
|
-
This `find` with wait until element is available (until timeout reached), if timeout reached and element still not found it will throw.
|
|
144
|
-
|
|
145
|
-
### Detect JavaScript errors in Browser Logs
|
|
146
|
-
|
|
147
|
-
```js
|
|
148
|
-
await browser.getErrorLogs()
|
|
149
|
-
```
|
|
150
|
-
|
|
151
|
-
Will return all errors in browser console and it is nice check we can perform after each test to ensure we have no missing resources or scripts throwing errors.
|
|
152
|
-
|
|
153
|
-
### Detect Accessibility Violations
|
|
154
|
-
|
|
155
|
-
```js
|
|
156
|
-
const disableRules = ['aria-allowed-role', 'label'];
|
|
157
|
-
const errors = await browser.getAccessibilityViolations('#table', disableRules);
|
|
158
|
-
expect(errors).toEqual([]);
|
|
159
|
-
```
|
|
160
|
-
|
|
161
|
-
`getAccessibilityViolations` uses [axe](https://www.deque.com/axe/) to detect WCAG 2.1 violations.
|
|
162
|
-
|
|
163
|
-
### Kendo UI Components Abstractions
|
|
164
|
-
|
|
165
|
-
TODO
|
|
166
|
-
|
|
167
|
-
## Contribution
|
|
168
|
-
|
|
169
|
-
PRs are welcome!
|
|
170
|
-
|
|
171
|
-
Lint:
|
|
172
|
-
|
|
173
|
-
```bash
|
|
174
|
-
npm run lint
|
|
175
|
-
```
|
|
176
|
-
|
|
177
|
-
Build:
|
|
178
|
-
|
|
179
|
-
```bash
|
|
180
|
-
npm run build
|
|
181
|
-
```
|
|
182
|
-
|
|
183
|
-
Run tests:
|
|
184
|
-
|
|
185
|
-
```bash
|
|
186
|
-
npm run tests:a11y
|
|
187
|
-
npm run tests:e2e
|
|
188
|
-
npm run tests:visual
|
|
189
|
-
```
|
|
1
|
+
|
|
2
|
+

|
|
3
|
+
|
|
4
|
+
## Professional Grade UI Components
|
|
5
|
+
|
|
6
|
+
This package is part of the [Kendo UI for Angular](https://www.telerik.com/kendo-angular-ui/) and [KendoReact](https://www.telerik.com/kendo-react-ui/components/#react-components) suites.
|
|
7
|
+
|
|
8
|
+
## License
|
|
9
|
+
|
|
10
|
+
This is commercial software. To use it, you need to agree to the [**Telerik End User License Agreement for Kendo UI** (for Kendo UI for Angular)](http://www.telerik.com/purchase/license-agreement/kendo-ui) or to the [**End User License Agreement for Progress KendoReact** (for KendoReact)](https://www.telerik.com/purchase/license-agreement/progress-kendoreact). If you do not own a commercial license, this file shall be governed by the trial license terms.
|
|
11
|
+
|
|
12
|
+
All available Kendo UI commercial licenses may be obtained at http://www.telerik.com/purchase/kendo-ui.
|
|
13
|
+
|
|
14
|
+
## Kendo UI for Angular Resources and Feedback
|
|
15
|
+
|
|
16
|
+
- [Get Started](https://www.telerik.com/kendo-angular-ui/getting-started)
|
|
17
|
+
- [Component References](https://www.telerik.com/kendo-angular-ui/components)
|
|
18
|
+
- [Blogs](http://www.telerik.com/blogs/kendo-ui)
|
|
19
|
+
- [FAQ](https://www.telerik.com/kendo-angular-ui/components/faq/)
|
|
20
|
+
- [GitHub Issues](https://github.com/telerik/kendo-angular/issues)
|
|
21
|
+
- [Feedback Portal](http://kendoui-feedback.telerik.com/forums/555517-kendo-ui-for-angular-2-feedback)
|
|
22
|
+
- [StackOverflow](https://stackoverflow.com/questions/tagged/kendo-ui-angular2)
|
|
23
|
+
|
|
24
|
+
## KendoReact Resources and Feedback
|
|
25
|
+
|
|
26
|
+
- [Get Started](https://www.telerik.com/kendo-react-ui/getting-started)
|
|
27
|
+
- [Component References](https://www.telerik.com/kendo-react-ui/components/#react-components)
|
|
28
|
+
- [Blogs](http://www.telerik.com/blogs/kendo-ui)
|
|
29
|
+
- [GitHub Issues](https://github.com/telerik/kendo-react/issues)
|
|
30
|
+
- [Feedback Portal](http://kendoui-feedback.telerik.com/forums/908425-kendo-ui-for-react-feedback)
|
|
31
|
+
- [StackOverflow](https://stackoverflow.com/questions/tagged/kendo-react-ui)
|
|
32
|
+
|
|
33
|
+
*Copyright © 2021 Progress Software Corporation and/or its subsidiaries or affiliates. All Rights Reserved.*
|
|
34
|
+
|
|
35
|
+
*Progress, Telerik, and certain product names used herein are trademarks or registered trademarks of Progress Software Corporation and/or one of its subsidiaries or affiliates in the U.S. and/or other countries.*
|
|
36
|
+
|
|
37
|
+
# kendo-e2e
|
|
38
|
+
|
|
39
|
+
Selenium based e2e testing for web.
|
|
40
|
+
|
|
41
|
+
## Usage
|
|
42
|
+
|
|
43
|
+
### Managing browser drivers
|
|
44
|
+
|
|
45
|
+
This framework do not manage browser drivers, so user should take care appropriate driver to be in `PATH`.
|
|
46
|
+
|
|
47
|
+
#### Linux and macOS
|
|
48
|
+
|
|
49
|
+
Install drivers globally:
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
npm i -g chromedriver
|
|
53
|
+
npm i -g geckodriver
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
Notes:
|
|
57
|
+
|
|
58
|
+
- `safaridriver` is build-in in macOS so no need to install extra packages.
|
|
59
|
+
- No need to add something in the `PATH` (scripts of global npm packages are already in the PATH).
|
|
60
|
+
|
|
61
|
+
#### Windows
|
|
62
|
+
|
|
63
|
+
Install drivers globally:
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
npm i -g chromedriver
|
|
67
|
+
npm i -g geckodriver
|
|
68
|
+
npm i -g msedgedriver
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
Add following to your `PATH`:
|
|
72
|
+
|
|
73
|
+
- `%APPDATA%\npm\node_modules\chromedriver\lib\chromedriver`
|
|
74
|
+
- `%APPDATA%\npm\node_modules\msedgedriver\lib\msedgedriver`
|
|
75
|
+
- `%APPDATA%\npm\node_modules\geckodriver`
|
|
76
|
+
|
|
77
|
+
### Managing browsers
|
|
78
|
+
|
|
79
|
+
Example:
|
|
80
|
+
|
|
81
|
+
```javascript
|
|
82
|
+
const browser = new Browser();
|
|
83
|
+
await browser.navigateTo("https://www.telerik.com/")
|
|
84
|
+
await browser.close();
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
By default it will start Chrome browser with size 1366x768.
|
|
88
|
+
|
|
89
|
+
Browser type and size can be controlled by settings following environment variables:
|
|
90
|
+
|
|
91
|
+
- `BROWSER_NAME`
|
|
92
|
+
|
|
93
|
+
Allowed values are `chrome`, `firefox`, `MicrosoftEdge` and `safari` (default is `chrome`).
|
|
94
|
+
|
|
95
|
+
- `BROWSER_WIDTH` and `BROWSER_HEIGHT`
|
|
96
|
+
|
|
97
|
+
Default values are `1366` and `768`.
|
|
98
|
+
|
|
99
|
+
- `HEADLESS`
|
|
100
|
+
|
|
101
|
+
If set to `true` it will start browsers in headless mode (default is `false`).
|
|
102
|
+
|
|
103
|
+
Notes: `Safari` do not support headless mode and this setting will be ignored.
|
|
104
|
+
|
|
105
|
+
### Testing on Real Mobile Devices @BrowserStack
|
|
106
|
+
|
|
107
|
+
Testing on mobile devices is also important, but usually it is hard to do it locally because:
|
|
108
|
+
|
|
109
|
+
- Mobile devices are expensive
|
|
110
|
+
- Local labs do not work well in case employees are distributed
|
|
111
|
+
|
|
112
|
+
That is why we implemented [BrowserStack](https://www.browserstack.com/) support.
|
|
113
|
+
|
|
114
|
+
Running tests on BrowserStack is similar to ruining them locally, we just need to tell what device and capabilities we need.
|
|
115
|
+
|
|
116
|
+
Configuration happens via environment variables:
|
|
117
|
+
|
|
118
|
+
```bash
|
|
119
|
+
export BROWSER_NAME=remote
|
|
120
|
+
export BS_USER_NAME=<your browser stack user id>
|
|
121
|
+
export BS_ACCESS_KEY=<your browser stack access key>
|
|
122
|
+
export BS_BROWSER_NAME=<Android|iPhone> (default is "Android")
|
|
123
|
+
export BS_BROWSER_NAME=<version of the mobile os> (default is "10.0")
|
|
124
|
+
export BS_DEVICE_NAME=<name of device> (default is "Google Pixel 4")
|
|
125
|
+
export BS_REAL_MOBILE=<true|false> (default is "true")
|
|
126
|
+
export BS_LOCAL=<true|false> (default is "false")
|
|
127
|
+
export BS_BUILD_NAME=<string> (default is "BStack Test")
|
|
128
|
+
export BS_BUILD_NUMBER=<string> (default is "BStack Build 1")
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
To check available mobile devices and capabilities please visit [this](https://www.browserstack.com/automate/capabilities) page.
|
|
132
|
+
|
|
133
|
+
### Find Elements and Wait for Conditions
|
|
134
|
+
|
|
135
|
+
Selenium default behavior when you search for element is to return it if available and throw if not available (do not try to wait until element is available).
|
|
136
|
+
|
|
137
|
+
To make writing e2e tests easier and tests more stable in `kendo-e2e` we have:
|
|
138
|
+
|
|
139
|
+
```js
|
|
140
|
+
const element = await browser.find(locator, timeout);
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
This `find` with wait until element is available (until timeout reached), if timeout reached and element still not found it will throw.
|
|
144
|
+
|
|
145
|
+
### Detect JavaScript errors in Browser Logs
|
|
146
|
+
|
|
147
|
+
```js
|
|
148
|
+
await browser.getErrorLogs()
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
Will return all errors in browser console and it is nice check we can perform after each test to ensure we have no missing resources or scripts throwing errors.
|
|
152
|
+
|
|
153
|
+
### Detect Accessibility Violations
|
|
154
|
+
|
|
155
|
+
```js
|
|
156
|
+
const disableRules = ['aria-allowed-role', 'label'];
|
|
157
|
+
const errors = await browser.getAccessibilityViolations('#table', disableRules);
|
|
158
|
+
expect(errors).toEqual([]);
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
`getAccessibilityViolations` uses [axe](https://www.deque.com/axe/) to detect WCAG 2.1 violations.
|
|
162
|
+
|
|
163
|
+
### Kendo UI Components Abstractions
|
|
164
|
+
|
|
165
|
+
TODO
|
|
166
|
+
|
|
167
|
+
## Contribution
|
|
168
|
+
|
|
169
|
+
PRs are welcome!
|
|
170
|
+
|
|
171
|
+
Lint:
|
|
172
|
+
|
|
173
|
+
```bash
|
|
174
|
+
npm run lint
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
Build:
|
|
178
|
+
|
|
179
|
+
```bash
|
|
180
|
+
npm run build
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
Run tests:
|
|
184
|
+
|
|
185
|
+
```bash
|
|
186
|
+
npm run tests:a11y
|
|
187
|
+
npm run tests:e2e
|
|
188
|
+
npm run tests:visual
|
|
189
|
+
```
|
package/dist/components/grid.js
CHANGED
|
@@ -17,13 +17,13 @@ const conditions_1 = require("../selenium/conditions");
|
|
|
17
17
|
const settings_1 = require("../settings/settings");
|
|
18
18
|
const enums_1 = require("./enums");
|
|
19
19
|
class Grid extends ui_component_1.UIComponent {
|
|
20
|
+
static get Selector() {
|
|
21
|
+
return ".k-grid";
|
|
22
|
+
}
|
|
20
23
|
constructor(driver, locator = selenium_webdriver_1.By.css(Grid.Selector), parentElement) {
|
|
21
24
|
super(driver, locator, parentElement);
|
|
22
25
|
this.parentElement = parentElement;
|
|
23
26
|
}
|
|
24
|
-
static get Selector() {
|
|
25
|
-
return ".k-grid";
|
|
26
|
-
}
|
|
27
27
|
pager() {
|
|
28
28
|
return __awaiter(this, void 0, void 0, function* () {
|
|
29
29
|
const rootElement = yield this.getRootElement();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grid.js","sourceRoot":"","sources":["../../src/components/grid.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2DAAuE;AACvE,iDAA6C;AAC7C,mCAAgC;AAChC,uDAA4C;AAC5C,mDAAgD;AAChD,mCAAmC;AAEnC,MAAa,IAAK,SAAQ,0BAAW;
|
|
1
|
+
{"version":3,"file":"grid.js","sourceRoot":"","sources":["../../src/components/grid.ts"],"names":[],"mappings":"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"}
|
package/dist/components/index.js
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAwB;AACxB,yCAAuB;AACvB,0CAAwB;AACxB,0CAAwB;AACxB,iDAA+B"}
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,yDAAiE;AAAxD,wGAAA,EAAE,OAAA;AAAE,yGAAA,GAAG,OAAA;AAAE,2GAAA,KAAK,OAAA;AAAE,gHAAA,UAAU,OAAA;AACnC,yCAAuB;AACvB,+CAA6B;AAC7B,8CAA4B;AAC5B,6CAA2B;AAC3B,6CAA2B;AAC3B,oDAAkC;AAClC,kEAAgD"}
|
|
@@ -26,27 +26,41 @@ function compareHtml(actualHtml, expectedHtml, options) {
|
|
|
26
26
|
allowVulnerableTags: true,
|
|
27
27
|
allowedAttributes: { "*": ["class"] },
|
|
28
28
|
};
|
|
29
|
-
const actualDom = new jsdom_1.default.JSDOM(sanitize_html_1.default(actualHtml, config)).window.document.documentElement;
|
|
30
|
-
const expectedDom = new jsdom_1.default.JSDOM(sanitize_html_1.default(expectedHtml, config)).window.document.documentElement;
|
|
29
|
+
const actualDom = new jsdom_1.default.JSDOM((0, sanitize_html_1.default)(actualHtml, config)).window.document.documentElement;
|
|
30
|
+
const expectedDom = new jsdom_1.default.JSDOM((0, sanitize_html_1.default)(expectedHtml, config)).window.document.documentElement;
|
|
31
31
|
let actualSelectors = [];
|
|
32
32
|
let parent = "";
|
|
33
33
|
parseDom(actualDom, actualSelectors, parent);
|
|
34
34
|
parent = "";
|
|
35
35
|
let expectedSelectors = [];
|
|
36
36
|
parseDom(expectedDom, expectedSelectors);
|
|
37
|
-
|
|
38
|
-
result.extra = actualSelectors.filter((element) => !expectedSelectors.includes(element));
|
|
39
|
-
result.missing = expectedSelectors.filter((element) => !actualSelectors.includes(element));
|
|
37
|
+
let actualWithoutExtra = [];
|
|
40
38
|
if ((options === null || options === void 0 ? void 0 : options.allowExtra) !== undefined) {
|
|
41
|
-
for (const
|
|
42
|
-
|
|
39
|
+
for (const selector of actualSelectors) {
|
|
40
|
+
let replacedSelector = selector;
|
|
41
|
+
for (const extraItem of options === null || options === void 0 ? void 0 : options.allowExtra) {
|
|
42
|
+
replacedSelector = replacedSelector.replace(extraItem, "").trim().replaceAll(/ /gi, " ");
|
|
43
|
+
}
|
|
44
|
+
actualWithoutExtra.push(replacedSelector);
|
|
43
45
|
}
|
|
46
|
+
actualWithoutExtra = [...new Set(actualWithoutExtra)];
|
|
44
47
|
}
|
|
48
|
+
else {
|
|
49
|
+
actualWithoutExtra = actualSelectors;
|
|
50
|
+
}
|
|
51
|
+
result.passed = actualWithoutExtra.filter((element) => expectedSelectors.includes(element));
|
|
52
|
+
result.extra = actualSelectors.filter((element) => !expectedSelectors.includes(element));
|
|
53
|
+
result.missing = expectedSelectors.filter((element) => !actualWithoutExtra.includes(element));
|
|
45
54
|
if ((options === null || options === void 0 ? void 0 : options.allowMissing) !== undefined) {
|
|
46
55
|
for (const missingItem of options === null || options === void 0 ? void 0 : options.allowMissing) {
|
|
47
56
|
result.missing = result.missing.filter((item) => !item.includes(missingItem));
|
|
48
57
|
}
|
|
49
58
|
}
|
|
59
|
+
if ((options === null || options === void 0 ? void 0 : options.allowExtra) !== undefined) {
|
|
60
|
+
for (const extraItem of options === null || options === void 0 ? void 0 : options.allowExtra) {
|
|
61
|
+
result.extra = result.extra.filter((item) => !item.includes(extraItem));
|
|
62
|
+
}
|
|
63
|
+
}
|
|
50
64
|
return result;
|
|
51
65
|
}
|
|
52
66
|
exports.compareHtml = compareHtml;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"html-comparer.js","sourceRoot":"","sources":["../../src/rendering/html-comparer.ts"],"names":[],"mappings":";;;;;;AAAA,iCAAiC;AACjC,kEAAyC;AACzC,kDAA0B;AAa1B;;;;;;;;GAQG;AACH,SAAgB,WAAW,CAAC,UAAkB,EAAE,YAAoB,EAAE,OAAwB;IAC1F,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,MAAM,GAAW,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAElD,MAAM,MAAM,GAAG;QACX,WAAW,EAAE,KAAK;QAClB,mBAAmB,EAAE,IAAI;QACzB,iBAAiB,EAAE,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,EAAE;KACxC,CAAC;IAEF,MAAM,SAAS,GAAG,IAAI,eAAK,CAAC,KAAK,CAAC,uBAAY,
|
|
1
|
+
{"version":3,"file":"html-comparer.js","sourceRoot":"","sources":["../../src/rendering/html-comparer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { By, WebDriver, WebElement } from "selenium-webdriver";
|
|
2
|
-
export
|
|
2
|
+
export type WaitCondition = (driver: WebDriver) => Promise<boolean>;
|
|
3
3
|
export declare class EC {
|
|
4
4
|
static hasText(element: WebElement, text: string): (driver: WebDriver) => Promise<boolean>;
|
|
5
5
|
static hasValue(element: WebElement, value: string): (driver: WebDriver) => Promise<boolean>;
|
package/dist/selenium/index.js
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/selenium/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/selenium/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4CAA0B;AAC1B,mDAAiC;AACjC,+CAA6B;AAC7B,mDAAiC;AACjC,iDAA+B;AAC/B,4CAA0B"}
|
package/dist/settings/index.js
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/settings/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/settings/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0DAAwC;AACxC,6CAA2B"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
|
|
1
|
+
type ImageSnapshotOptions = {
|
|
2
2
|
hideSelectors?: string[];
|
|
3
3
|
offsetY?: number;
|
|
4
4
|
sleep?: number;
|
|
5
5
|
tolerance?: number;
|
|
6
6
|
timeout?: number;
|
|
7
7
|
};
|
|
8
|
-
|
|
8
|
+
type ImageSnapshotResult = {
|
|
9
9
|
same?: boolean;
|
|
10
10
|
};
|
|
11
11
|
/**
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
|
@@ -40,9 +44,9 @@ const selenium_webdriver_1 = require("selenium-webdriver");
|
|
|
40
44
|
const util_1 = require("util");
|
|
41
45
|
const crop_1 = require("./crop");
|
|
42
46
|
const scripts_1 = require("./scripts");
|
|
43
|
-
const writeFile = util_1.promisify(fs.writeFile);
|
|
44
|
-
const exists = util_1.promisify(fs.exists);
|
|
45
|
-
const looksSame = util_1.promisify(looks_same_1.default);
|
|
47
|
+
const writeFile = (0, util_1.promisify)(fs.writeFile);
|
|
48
|
+
const exists = (0, util_1.promisify)(fs.exists);
|
|
49
|
+
const looksSame = (0, util_1.promisify)(looks_same_1.default);
|
|
46
50
|
const defaults = {
|
|
47
51
|
hideSelectors: [],
|
|
48
52
|
offsetY: 0,
|
|
@@ -92,7 +96,7 @@ function snapshotImage(driver, selector, outputPath, options) {
|
|
|
92
96
|
yield driver.wait(() => __awaiter(this, void 0, void 0, function* () {
|
|
93
97
|
const data = yield driver.takeScreenshot();
|
|
94
98
|
const image = Buffer.from(data, 'base64');
|
|
95
|
-
cropped = crop_1.crop(image, viewport);
|
|
99
|
+
cropped = (0, crop_1.crop)(image, viewport);
|
|
96
100
|
if (yield exists(outputPath)) {
|
|
97
101
|
const result = yield looksSame(cropped, outputPath, { strict: false, tolerance: tolerance });
|
|
98
102
|
return result.equal;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"snapshot-image.js","sourceRoot":"","sources":["../../src/snapshot-image/snapshot-image.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"snapshot-image.js","sourceRoot":"","sources":["../../src/snapshot-image/snapshot-image.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,7 +12,7 @@ const filters = [
|
|
|
12
12
|
isGUID
|
|
13
13
|
];
|
|
14
14
|
function filterAttributes(doc, root) {
|
|
15
|
-
const nodeIterator = doc.createNodeIterator(root, 1 /* SHOW_ELEMENT */);
|
|
15
|
+
const nodeIterator = doc.createNodeIterator(root, 1 /* NodeFilter.SHOW_ELEMENT */);
|
|
16
16
|
while (nodeIterator.nextNode()) {
|
|
17
17
|
const node = nodeIterator.referenceNode;
|
|
18
18
|
const attributes = node.attributes;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filter-attributes.js","sourceRoot":"","sources":["../../src/snapshot-markup/filter-attributes.ts"],"names":[],"mappings":";;;AAIA,MAAM,SAAS,GAAoB,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;AAC5E,MAAM,MAAM,GAAoB,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;AACtE,MAAM,OAAO,GAAoB,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;AAC7G,MAAM,MAAM,GAAoB,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,iEAAiE,CAAC,CAAC,CAAC;AAEtI,MAAM,OAAO,GAAG;IACZ,SAAS;IACT,MAAM;IACN,OAAO;IACP,MAAM;CACT,CAAC;AAEF,SAAgB,gBAAgB,CAAC,GAAiB,EAAE,IAAiB;IACjE,MAAM,YAAY,GAAG,GAAG,CAAC,kBAAkB,CAAC,IAAI,
|
|
1
|
+
{"version":3,"file":"filter-attributes.js","sourceRoot":"","sources":["../../src/snapshot-markup/filter-attributes.ts"],"names":[],"mappings":";;;AAIA,MAAM,SAAS,GAAoB,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;AAC5E,MAAM,MAAM,GAAoB,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;AACtE,MAAM,OAAO,GAAoB,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;AAC7G,MAAM,MAAM,GAAoB,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,iEAAiE,CAAC,CAAC,CAAC;AAEtI,MAAM,OAAO,GAAG;IACZ,SAAS;IACT,MAAM;IACN,OAAO;IACP,MAAM;CACT,CAAC;AAEF,SAAgB,gBAAgB,CAAC,GAAiB,EAAE,IAAiB;IACjE,MAAM,YAAY,GAAG,GAAG,CAAC,kBAAkB,CAAC,IAAI,kCAA0B,CAAC;IAE3E,OAAO,YAAY,CAAC,QAAQ,EAAE,EAAE;QAC5B,MAAM,IAAI,GAAG,YAAY,CAAC,aAA4B,CAAC;QACvD,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QACnC,MAAM,MAAM,GAAG,EAAE,CAAC;QAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACxC,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAChC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YACnE,IAAI,IAAI,EAAE;gBACN,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAC1B;SACJ;QAED,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;KAC5D;AACL,CAAC;AAjBD,4CAiBC"}
|
|
@@ -4,45 +4,45 @@ const jsdom_1 = require("jsdom");
|
|
|
4
4
|
const filter_attributes_1 = require("./filter-attributes");
|
|
5
5
|
describe('filterAttributes', () => {
|
|
6
6
|
it('should filter Angular attributes', () => {
|
|
7
|
-
const doc = new jsdom_1.JSDOM(`
|
|
8
|
-
<kendo-grid-list ng-reflect-data="[object Object],[object Object" _ng-attr="true"></kendo-grid-list>
|
|
7
|
+
const doc = new jsdom_1.JSDOM(`
|
|
8
|
+
<kendo-grid-list ng-reflect-data="[object Object],[object Object" _ng-attr="true"></kendo-grid-list>
|
|
9
9
|
`).window.document;
|
|
10
|
-
filter_attributes_1.filterAttributes(doc, doc.documentElement);
|
|
10
|
+
(0, filter_attributes_1.filterAttributes)(doc, doc.documentElement);
|
|
11
11
|
expect(doc.querySelector('kendo-grid-list').getAttribute('ng-reflect-data')).toBeNull();
|
|
12
12
|
expect(doc.querySelector('kendo-grid-list').getAttribute('_ng-attr')).toBeNull();
|
|
13
13
|
});
|
|
14
14
|
it('should filter data attributes', () => {
|
|
15
|
-
const doc = new jsdom_1.JSDOM(`
|
|
16
|
-
<div data-foo="2"></div>
|
|
15
|
+
const doc = new jsdom_1.JSDOM(`
|
|
16
|
+
<div data-foo="2"></div>
|
|
17
17
|
`).window.document;
|
|
18
|
-
filter_attributes_1.filterAttributes(doc, doc.documentElement);
|
|
18
|
+
(0, filter_attributes_1.filterAttributes)(doc, doc.documentElement);
|
|
19
19
|
expect(doc.querySelector('div').getAttribute('data-foo')).toBeNull();
|
|
20
20
|
});
|
|
21
21
|
it('should filter empty attributes', () => {
|
|
22
|
-
const doc = new jsdom_1.JSDOM(`
|
|
23
|
-
<div kendodraggable=""></div>
|
|
22
|
+
const doc = new jsdom_1.JSDOM(`
|
|
23
|
+
<div kendodraggable=""></div>
|
|
24
24
|
`).window.document;
|
|
25
|
-
filter_attributes_1.filterAttributes(doc, doc.documentElement);
|
|
25
|
+
(0, filter_attributes_1.filterAttributes)(doc, doc.documentElement);
|
|
26
26
|
expect(doc.querySelector('div').getAttribute('kendodraggable')).toBeNull();
|
|
27
27
|
});
|
|
28
28
|
it('should not filter standard empty attributes', () => {
|
|
29
|
-
const doc = new jsdom_1.JSDOM(`
|
|
30
|
-
<input checked readonly />
|
|
31
|
-
<select name="choice">
|
|
32
|
-
<option value="first" selected>First Value</option>
|
|
33
|
-
</select>
|
|
29
|
+
const doc = new jsdom_1.JSDOM(`
|
|
30
|
+
<input checked readonly />
|
|
31
|
+
<select name="choice">
|
|
32
|
+
<option value="first" selected>First Value</option>
|
|
33
|
+
</select>
|
|
34
34
|
`).window.document;
|
|
35
|
-
filter_attributes_1.filterAttributes(doc, doc.documentElement);
|
|
35
|
+
(0, filter_attributes_1.filterAttributes)(doc, doc.documentElement);
|
|
36
36
|
expect(doc.querySelector('input').getAttribute('checked')).toBe('');
|
|
37
37
|
expect(doc.querySelector('input').getAttribute('readonly')).toBe('');
|
|
38
38
|
expect(doc.querySelector('option').getAttribute('selected')).toBe('');
|
|
39
39
|
});
|
|
40
40
|
it('should filter attributes with GUID values', () => {
|
|
41
|
-
const doc = new jsdom_1.JSDOM(`
|
|
42
|
-
<input id="a23ae29e-06d2-4cb8-a76e-263fa9a3338e" type="checkbox" class="k-checkbox">
|
|
43
|
-
<label class="k-checkbox-label" for="a23ae29e-06d2-4cb8-a76e-263fa9a3338e"></label>
|
|
41
|
+
const doc = new jsdom_1.JSDOM(`
|
|
42
|
+
<input id="a23ae29e-06d2-4cb8-a76e-263fa9a3338e" type="checkbox" class="k-checkbox">
|
|
43
|
+
<label class="k-checkbox-label" for="a23ae29e-06d2-4cb8-a76e-263fa9a3338e"></label>
|
|
44
44
|
`).window.document;
|
|
45
|
-
filter_attributes_1.filterAttributes(doc, doc.documentElement);
|
|
45
|
+
(0, filter_attributes_1.filterAttributes)(doc, doc.documentElement);
|
|
46
46
|
expect(doc.querySelector('input').getAttribute('id')).toBeNull();
|
|
47
47
|
expect(doc.querySelector('label').getAttribute('for')).toBeNull();
|
|
48
48
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filter-attributes.spec.js","sourceRoot":"","sources":["../../src/snapshot-markup/filter-attributes.spec.ts"],"names":[],"mappings":";;AAAA,iCAA8B;AAC9B,2DAAuD;AAEvD,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAC9B,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;QACxC,MAAM,GAAG,GAAG,IAAI,aAAK,CAAC;;SAErB,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;QAEnB,oCAAgB,
|
|
1
|
+
{"version":3,"file":"filter-attributes.spec.js","sourceRoot":"","sources":["../../src/snapshot-markup/filter-attributes.spec.ts"],"names":[],"mappings":";;AAAA,iCAA8B;AAC9B,2DAAuD;AAEvD,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAC9B,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;QACxC,MAAM,GAAG,GAAG,IAAI,aAAK,CAAC;;SAErB,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;QAEnB,IAAA,oCAAgB,EAAC,GAAG,EAAE,GAAG,CAAC,eAAe,CAAC,CAAC;QAE3C,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QACxF,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;IACrF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;QACrC,MAAM,GAAG,GAAG,IAAI,aAAK,CAAC;;SAErB,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;QAEnB,IAAA,oCAAgB,EAAC,GAAG,EAAE,GAAG,CAAC,eAAe,CAAC,CAAC;QAE3C,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;IACzE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;QACtC,MAAM,GAAG,GAAG,IAAI,aAAK,CAAC;;SAErB,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;QAEnB,IAAA,oCAAgB,EAAC,GAAG,EAAE,GAAG,CAAC,eAAe,CAAC,CAAC;QAE3C,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC/E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;QACnD,MAAM,GAAG,GAAG,IAAI,aAAK,CAAC;;;;;SAKrB,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;QAEnB,IAAA,oCAAgB,EAAC,GAAG,EAAE,GAAG,CAAC,eAAe,CAAC,CAAC;QAE3C,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACpE,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACrE,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC1E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACjD,MAAM,GAAG,GAAG,IAAI,aAAK,CAAC;;;SAGrB,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;QAEnB,IAAA,oCAAgB,EAAC,GAAG,EAAE,GAAG,CAAC,eAAe,CAAC,CAAC;QAE3C,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QACjE,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;IACtE,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.filterCommentNodes = void 0;
|
|
4
4
|
function filterCommentNodes(doc, root) {
|
|
5
|
-
const nodeIterator = doc.createNodeIterator(root, 128 /* SHOW_COMMENT */);
|
|
5
|
+
const nodeIterator = doc.createNodeIterator(root, 128 /* NodeFilter.SHOW_COMMENT */);
|
|
6
6
|
while (nodeIterator.nextNode()) {
|
|
7
7
|
const commentNode = nodeIterator.referenceNode;
|
|
8
8
|
commentNode.parentNode.removeChild(commentNode);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filter-comment-nodes.js","sourceRoot":"","sources":["../../src/snapshot-markup/filter-comment-nodes.ts"],"names":[],"mappings":";;;AAEA,SAAgB,kBAAkB,CAAC,GAAiB,EAAE,IAAiB;IACnE,MAAM,YAAY,GAAG,GAAG,CAAC,kBAAkB,CAAC,IAAI,
|
|
1
|
+
{"version":3,"file":"filter-comment-nodes.js","sourceRoot":"","sources":["../../src/snapshot-markup/filter-comment-nodes.ts"],"names":[],"mappings":";;;AAEA,SAAgB,kBAAkB,CAAC,GAAiB,EAAE,IAAiB;IACnE,MAAM,YAAY,GAAG,GAAG,CAAC,kBAAkB,CAAC,IAAI,oCAA0B,CAAC;IAE3E,OAAO,YAAY,CAAC,QAAQ,EAAE,EAAE;QAC5B,MAAM,WAAW,GAAG,YAAY,CAAC,aAAa,CAAC;QAC/C,WAAW,CAAC,UAAU,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;KACnD;AACL,CAAC;AAPD,gDAOC"}
|
|
@@ -2,16 +2,16 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.htmlTemplate = void 0;
|
|
4
4
|
function htmlTemplate(markup, data) {
|
|
5
|
-
return `
|
|
6
|
-
<!doctype html>
|
|
7
|
-
<html>
|
|
8
|
-
<head>
|
|
9
|
-
<title>${data === null || data === void 0 ? void 0 : data.title}</title>
|
|
10
|
-
<meta charset="utf-8" />
|
|
11
|
-
</head>
|
|
12
|
-
<body>
|
|
13
|
-
${markup}
|
|
14
|
-
</body>
|
|
5
|
+
return `
|
|
6
|
+
<!doctype html>
|
|
7
|
+
<html>
|
|
8
|
+
<head>
|
|
9
|
+
<title>${data === null || data === void 0 ? void 0 : data.title}</title>
|
|
10
|
+
<meta charset="utf-8" />
|
|
11
|
+
</head>
|
|
12
|
+
<body>
|
|
13
|
+
${markup}
|
|
14
|
+
</body>
|
|
15
15
|
</html>`;
|
|
16
16
|
}
|
|
17
17
|
exports.htmlTemplate = htmlTemplate;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
type TemplateFn = (markup: string, data: any) => string;
|
|
2
|
+
type SnapshotOptions = {
|
|
3
3
|
template: 'empty' | 'html5' | 'visual-test' | TemplateFn;
|
|
4
4
|
preserveAttributes?: boolean;
|
|
5
5
|
preserveCommentNodes?: boolean;
|
|
@@ -28,19 +28,19 @@ function snapshotMarkup(driver, selector, outputPath, options) {
|
|
|
28
28
|
throw new Error(`No element with selector ${selector} found.`);
|
|
29
29
|
}
|
|
30
30
|
if (!(options === null || options === void 0 ? void 0 : options.preserveAttributes)) {
|
|
31
|
-
filter_attributes_1.filterAttributes(doc, root);
|
|
31
|
+
(0, filter_attributes_1.filterAttributes)(doc, root);
|
|
32
32
|
}
|
|
33
33
|
if (!(options === null || options === void 0 ? void 0 : options.preserveCommentNodes)) {
|
|
34
|
-
filter_comment_nodes_1.filterCommentNodes(doc, root);
|
|
34
|
+
(0, filter_comment_nodes_1.filterCommentNodes)(doc, root);
|
|
35
35
|
}
|
|
36
36
|
let output = root.outerHTML;
|
|
37
37
|
const template = (_a = options === null || options === void 0 ? void 0 : options.template) !== null && _a !== void 0 ? _a : 'empty';
|
|
38
38
|
switch (template) {
|
|
39
39
|
case 'visual-test':
|
|
40
|
-
output = visual_test_template_1.visualTestTemplate(output, options === null || options === void 0 ? void 0 : options.data);
|
|
40
|
+
output = (0, visual_test_template_1.visualTestTemplate)(output, options === null || options === void 0 ? void 0 : options.data);
|
|
41
41
|
break;
|
|
42
42
|
case 'html5':
|
|
43
|
-
output = html_template_1.htmlTemplate(output, options === null || options === void 0 ? void 0 : options.data);
|
|
43
|
+
output = (0, html_template_1.htmlTemplate)(output, options === null || options === void 0 ? void 0 : options.data);
|
|
44
44
|
break;
|
|
45
45
|
default:
|
|
46
46
|
if (typeof template === 'function') {
|
|
@@ -49,8 +49,8 @@ function snapshotMarkup(driver, selector, outputPath, options) {
|
|
|
49
49
|
break;
|
|
50
50
|
}
|
|
51
51
|
const beautifyOptions = Object.assign({ indent_size: 4 }, options === null || options === void 0 ? void 0 : options.beautifyOptions);
|
|
52
|
-
output = js_beautify_1.html(output, beautifyOptions);
|
|
53
|
-
fs_1.writeFileSync(outputPath, output);
|
|
52
|
+
output = (0, js_beautify_1.html)(output, beautifyOptions);
|
|
53
|
+
(0, fs_1.writeFileSync)(outputPath, output);
|
|
54
54
|
});
|
|
55
55
|
}
|
|
56
56
|
exports.snapshotMarkup = snapshotMarkup;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"snapshot-markup.js","sourceRoot":"","sources":["../../src/snapshot-markup/snapshot-markup.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2BAAmC;AACnC,6CAAmD;AACnD,iCAA8B;AAC9B,2DAAwC;AACxC,2DAAuD;AACvD,iEAA4D;AAC5D,mDAA+C;AAC/C,iEAA4D;AAe5D,SAAsB,cAAc,CAAC,MAAW,EAAE,QAAgB,EAAE,UAAkB,EAAE,OAAwB;;;QAC5G,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,uBAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;QACpF,MAAM,GAAG,GAAG,IAAI,aAAK,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;QAC9C,MAAM,IAAI,GAAG,GAAG,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAEzC,IAAI,CAAC,IAAI,EAAE;YACT,MAAM,IAAI,KAAK,CAAC,4BAA4B,QAAQ,SAAS,CAAC,CAAC;SAChE;QAED,IAAI,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,kBAAkB,CAAA,EAAE;YAC9B,oCAAgB,
|
|
1
|
+
{"version":3,"file":"snapshot-markup.js","sourceRoot":"","sources":["../../src/snapshot-markup/snapshot-markup.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2BAAmC;AACnC,6CAAmD;AACnD,iCAA8B;AAC9B,2DAAwC;AACxC,2DAAuD;AACvD,iEAA4D;AAC5D,mDAA+C;AAC/C,iEAA4D;AAe5D,SAAsB,cAAc,CAAC,MAAW,EAAE,QAAgB,EAAE,UAAkB,EAAE,OAAwB;;;QAC5G,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,uBAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;QACpF,MAAM,GAAG,GAAG,IAAI,aAAK,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;QAC9C,MAAM,IAAI,GAAG,GAAG,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAEzC,IAAI,CAAC,IAAI,EAAE;YACT,MAAM,IAAI,KAAK,CAAC,4BAA4B,QAAQ,SAAS,CAAC,CAAC;SAChE;QAED,IAAI,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,kBAAkB,CAAA,EAAE;YAC9B,IAAA,oCAAgB,EAAC,GAAG,EAAE,IAAI,CAAC,CAAC;SAC/B;QAED,IAAI,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,oBAAoB,CAAA,EAAE;YAChC,IAAA,yCAAkB,EAAC,GAAG,EAAE,IAAI,CAAC,CAAC;SACjC;QAED,IAAI,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC;QAC5B,MAAM,QAAQ,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,mCAAI,OAAO,CAAC;QAC9C,QAAQ,QAAQ,EAAE;YACd,KAAK,aAAa;gBACd,MAAM,GAAG,IAAA,yCAAkB,EAAC,MAAM,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,CAAC,CAAC;gBACnD,MAAM;YACV,KAAK,OAAO;gBACR,MAAM,GAAG,IAAA,4BAAY,EAAC,MAAM,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,CAAC,CAAC;gBAC7C,MAAM;YACV;gBACI,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE;oBAChC,MAAM,GAAG,QAAQ,CAAC,MAAM,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,CAAC,CAAC;iBAC5C;gBACD,MAAM;SACb;QAED,MAAM,eAAe,mBACjB,WAAW,EAAE,CAAC,IACX,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,eAAe,CAC9B,CAAC;QACF,MAAM,GAAG,IAAA,kBAAY,EAAC,MAAM,EAAE,eAAe,CAAC,CAAC;QAE/C,IAAA,kBAAa,EAAC,UAAU,EAAE,MAAM,CAAC,CAAC;;CACrC;AAxCD,wCAwCC"}
|
|
@@ -7,19 +7,19 @@ function parentPath(level) {
|
|
|
7
7
|
function visualTestTemplate(markup, options) {
|
|
8
8
|
var _a;
|
|
9
9
|
const pathDepth = (_a = options === null || options === void 0 ? void 0 : options.pathDepth) !== null && _a !== void 0 ? _a : 3;
|
|
10
|
-
return `
|
|
11
|
-
<!doctype html>
|
|
12
|
-
<html lang="en" class="k-typography k-no-animations">
|
|
13
|
-
<head>
|
|
14
|
-
<title>${options === null || options === void 0 ? void 0 : options.title}</title>
|
|
15
|
-
<meta charset="utf-8" />
|
|
16
|
-
<link rel="stylesheet" data-role="kendo-theme" href="${parentPath(pathDepth + 2)}/packages/default/dist/all.css" />
|
|
17
|
-
<link rel="stylesheet" href="${parentPath(pathDepth)}/assets/styles.css" />
|
|
18
|
-
<script src="${parentPath(pathDepth)}/assets/scripts.js"></script>
|
|
19
|
-
</head>
|
|
20
|
-
<body>
|
|
21
|
-
${markup}
|
|
22
|
-
</body>
|
|
10
|
+
return `
|
|
11
|
+
<!doctype html>
|
|
12
|
+
<html lang="en" class="k-typography k-no-animations">
|
|
13
|
+
<head>
|
|
14
|
+
<title>${options === null || options === void 0 ? void 0 : options.title}</title>
|
|
15
|
+
<meta charset="utf-8" />
|
|
16
|
+
<link rel="stylesheet" data-role="kendo-theme" href="${parentPath(pathDepth + 2)}/packages/default/dist/all.css" />
|
|
17
|
+
<link rel="stylesheet" href="${parentPath(pathDepth)}/assets/styles.css" />
|
|
18
|
+
<script src="${parentPath(pathDepth)}/assets/scripts.js"></script>
|
|
19
|
+
</head>
|
|
20
|
+
<body>
|
|
21
|
+
${markup}
|
|
22
|
+
</body>
|
|
23
23
|
</html>`;
|
|
24
24
|
}
|
|
25
25
|
exports.visualTestTemplate = visualTestTemplate;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@progress/kendo-e2e",
|
|
3
|
-
"version": "1.4.
|
|
3
|
+
"version": "1.4.1",
|
|
4
4
|
"description": "Kendo UI end-to-end test utilities.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"typings": "dist/index.d.ts",
|
|
@@ -14,25 +14,22 @@
|
|
|
14
14
|
"test:e2e": "npx jest tests/e2e",
|
|
15
15
|
"test:rendering": "npx jest tests/rendering",
|
|
16
16
|
"test:visual": "npx jest tests/visual",
|
|
17
|
-
"semantic-release": "semantic-release
|
|
17
|
+
"semantic-release": "semantic-release"
|
|
18
18
|
},
|
|
19
19
|
"repository": {
|
|
20
20
|
"type": "git",
|
|
21
21
|
"url": "git+https://github.com/telerik/kendo-e2e.git"
|
|
22
22
|
},
|
|
23
|
+
"publishConfig": {
|
|
24
|
+
"access": "public"
|
|
25
|
+
},
|
|
23
26
|
"release": {
|
|
24
|
-
"
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
},
|
|
31
|
-
"analyzeCommits": "@progress/semantic-prerelease/analyzeCommits",
|
|
32
|
-
"generateNotes": "@progress/semantic-prerelease/generateNotes",
|
|
33
|
-
"getLastRelease": "@progress/semantic-prerelease/getLastRelease",
|
|
34
|
-
"verifyConditions": "@progress/semantic-prerelease/verifyConditions",
|
|
35
|
-
"verifyRelease": "@progress/semantic-prerelease/verifyRelease"
|
|
27
|
+
"branches": [
|
|
28
|
+
{
|
|
29
|
+
"name": "master",
|
|
30
|
+
"channel": "latest"
|
|
31
|
+
}
|
|
32
|
+
]
|
|
36
33
|
},
|
|
37
34
|
"keywords": [
|
|
38
35
|
"a11y",
|
|
@@ -66,27 +63,25 @@
|
|
|
66
63
|
"selenium-webdriver": "4.8.2"
|
|
67
64
|
},
|
|
68
65
|
"devDependencies": {
|
|
69
|
-
"@commitlint/cli": "^17.
|
|
70
|
-
"@commitlint/config-conventional": "^17.
|
|
71
|
-
"@progress/kendo-common-tasks": "^8.0.2",
|
|
66
|
+
"@commitlint/cli": "^17.6.6",
|
|
67
|
+
"@commitlint/config-conventional": "^17.6.6",
|
|
72
68
|
"@progress/kendo-themes-html": "^6.4.0",
|
|
73
|
-
"@
|
|
74
|
-
"@types/
|
|
75
|
-
"@
|
|
76
|
-
"@typescript-eslint/
|
|
77
|
-
"
|
|
78
|
-
"
|
|
79
|
-
"geckodriver": "3.2.0",
|
|
69
|
+
"@types/jest": "^29.5.2",
|
|
70
|
+
"@types/node": "ts5.0",
|
|
71
|
+
"@typescript-eslint/eslint-plugin": "^5.60.1",
|
|
72
|
+
"@typescript-eslint/parser": "^5.60.1",
|
|
73
|
+
"eslint": "^8.43.0",
|
|
74
|
+
"geckodriver": "4.0.4",
|
|
80
75
|
"husky": "^8.0.1",
|
|
81
|
-
"jest": "^
|
|
82
|
-
"semantic-release": "^
|
|
83
|
-
"ts-jest": "^
|
|
76
|
+
"jest": "^29.5.0",
|
|
77
|
+
"semantic-release": "^21.0.5",
|
|
78
|
+
"ts-jest": "^29.1.0",
|
|
84
79
|
"ts-node": "^10.9.1",
|
|
85
|
-
"tslib": "^2.
|
|
86
|
-
"typescript": "~
|
|
80
|
+
"tslib": "^2.6.0",
|
|
81
|
+
"typescript": "~5.0.0"
|
|
87
82
|
},
|
|
88
83
|
"engines": {
|
|
89
84
|
"npm": ">=8.0.0",
|
|
90
|
-
"node": ">=
|
|
85
|
+
"node": ">=18.0.0"
|
|
91
86
|
}
|
|
92
|
-
}
|
|
87
|
+
}
|