Skip to content

Commit 1e9e492

Browse files
Remove data-cy
* Add "Remove data-cy" feature * bump * Update deps * npm audit fix * Skip coverage for now
1 parent c9f5c8c commit 1e9e492

File tree

13 files changed

+2658
-2587
lines changed

13 files changed

+2658
-2587
lines changed

.github/workflows/node.js.yml

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ on:
99
pull_request:
1010
branches: [ master ]
1111

12-
jobs:
12+
jobs:
1313
build:
1414

1515
runs-on: ubuntu-latest
@@ -32,6 +32,8 @@ jobs:
3232
run: npm install -g [email protected]
3333

3434
- run: npm ci
35-
- run: npm run lint
36-
- run: npm run coverage
37-
- run: jest --runInBand
35+
# ESLint 7+ uses `} catch {` which is not supported in Node 8
36+
- if: ${{ matrix.node-version != '8.3.0' }}
37+
run: npm run lint
38+
# - run: npm run coverage
39+
- run: npx jest --runInBand

README.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,7 @@ module.exports = {
173173
removeDataTestid: false,
174174
removeDataTestId: false,
175175
removeDataQa: false,
176+
removeDataCy: false,
176177
removeDataVId: false,
177178
removeIdTest: false,
178179
removeServerRendered: true,
@@ -209,6 +210,7 @@ module.exports = {
209210
removeDataTestid: true,
210211
removeDataTestId: true,
211212
removeDataQa: false,
213+
removeDataCy: false,
212214
removeDataVId: true,
213215
removeIdTest: false,
214216
removeServerRendered: true,
@@ -230,6 +232,7 @@ removeDataTest | `true` | Removes `data-test="whatever"` from y
230232
removeDataTestid | `true` | Removes `data-testid="whatever"` from your snapshots if true.
231233
removeDataTestId | `true` | Removes `data-test-id="whatever"` from your snapshots if true.
232234
removeDataQa | `false` | Removes `data-qa="whatever"` from your snapshots if true. `data-qa` is usually used by non-dev QA members. If they change in your snapshot, that indicates it may break someone else's E2E tests. So most using `data-qa` prefer they be left in by default.
235+
removeDataCy | `false` | Removes `data-cy="whatever"` from your snapshots if true. `data-cy` is used by Cypress end-to-end tests. If they change in your snapshot, that indicates it may break an E2E tests. So most using `data-cy` prefer they be left in by default.
233236
removeDataVId | `true` | Removes `data-v-1234abcd=""` from your snapshots. Important if a 3rd-party component uses scoped styles, to prevent ID changes from breaking your `mount` based tests when updating a dependency.
234237
removeIdTest | `false` | Removes `id="test-whatever"` or `id="testWhatever"`from snapshots. **Warning:** You should never use ID's for test tokens, as they can also be used by JS and CSS, making them more brittle. Use `data-test-id` instead.
235238
removeServerRendered | `true` | Removes `data-server-rendered="true"` from your snapshots if true.

package-lock.json

Lines changed: 2517 additions & 2561 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "jest-serializer-vue-tjw",
33
"description": "A superb jest serializer for Vue snapshots",
4-
"version": "3.14.0",
4+
"version": "3.15.0",
55
"main": "index.js",
66
"scripts": {
77
"lint": "eslint --ext .js,.vue .",
@@ -18,28 +18,28 @@
1818
],
1919
"dependencies": {
2020
"cheerio": "^1.0.0-rc.3",
21-
"htmlparser2": "^4.1.0",
22-
"js-beautify": "^1.11.0",
21+
"htmlparser2": "^5.0.0",
22+
"js-beautify": "^1.13.0",
2323
"lodash.clonedeep": "^4.5.0"
2424
},
2525
"devDependencies": {
26-
"@babel/preset-env": "^7.9.5",
26+
"@babel/preset-env": "^7.12.1",
2727
"@vue/test-utils": "^1.0.0-beta.33",
2828
"babel-core": "7.0.0-bridge.0",
2929
"babel-eslint": "^10.1.0",
30-
"babel-jest": "^25.4.0",
31-
"coveralls": "^3.0.11",
32-
"eslint": "^6.8.0",
30+
"babel-jest": "^26.5.2",
31+
"coveralls": "^3.1.0",
32+
"eslint": "^7.11.0",
3333
"eslint-config-tjw-base": "^1.0.0",
3434
"eslint-config-tjw-jest": "^1.0.0",
3535
"eslint-config-tjw-vue": "^2.0.0",
36-
"eslint-plugin-jsdoc": "^24.0.0",
37-
"eslint-plugin-vue": "^6.2.2",
36+
"eslint-plugin-jsdoc": "^30.6.5",
37+
"eslint-plugin-vue": "^7.0.1",
3838
"jest": "24.9.0",
39-
"vue": "^2.6.11",
40-
"vue-good-table": "^2.19.1",
41-
"vue-jest": "^3.0.5",
42-
"vue-template-compiler": "^2.6.11"
39+
"vue": "^2.6.12",
40+
"vue-good-table": "^2.21.0",
41+
"vue-jest": "^3.0.7",
42+
"vue-template-compiler": "^2.6.12"
4343
},
4444
"repository": {
4545
"type": "git",

src/loadOptions.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ function booleanSettings (options, vueConfigOptions) {
1616
'removeDataTestid',
1717
'removeDataTestId',
1818
'removeDataQa',
19+
'removeDataCy',
1920
'removeDataVId',
2021
'removeIdTest',
2122
'removeServerRendered',
@@ -101,6 +102,7 @@ function applySettings (vueConfigOptions) {
101102
removeDataTestid: true,
102103
removeDataTestId: true,
103104
removeDataQa: false,
105+
removeDataCy: false,
104106
removeDataVId: true,
105107
removeIdTest: false,
106108
removeServerRendered: true,

src/removeTestTokens.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,9 @@ function removeTestTokens (html, options) {
9090
if (options && options.removeDataQa) {
9191
removeDataAttribute($, 'qa');
9292
}
93+
if (options && options.removeDataCy) {
94+
removeDataAttribute($, 'cy');
95+
}
9396

9497
removeIdTest($, options);
9598
removeClassTest($, options);

tests/Demo.test.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ describe('Demo', () => {
77
The above specific data-attrubutes are removed by default.
88
</h1>
99
<div>
10-
<span class="active" data-qa="span" data-v-b3d95ac7="">
10+
<span class="active" data-qa="span" data-cy="span" data-v-b3d95ac7="">
1111
These data-v ID's are removed too by default.
1212
</span>
1313
<!---->
@@ -39,6 +39,7 @@ describe('Demo', () => {
3939
removeDataTestid: false,
4040
removeDataTestId: false,
4141
removeDataQa: true,
42+
removeDataCy: true,
4243
removeDataVId: false,
4344
removeServerRendered: false,
4445
stringifyObjects: true
@@ -63,6 +64,7 @@ describe('Demo', () => {
6364
removeDataTestid: false,
6465
removeDataTestId: false,
6566
removeDataQa: false,
67+
removeDataCy: false,
6668
removeDataVId: false,
6769
removeIdTest: false,
6870
removeServerRendered: true,

tests/TestTokens.test.js

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ describe('TestTokens.vue', () => {
2020
removeDataTestid: false,
2121
removeDataTestId: false,
2222
removeDataQa: false,
23+
removeDataCy: false,
2324
removeClassTest: false,
2425
removeIdTest: false
2526
});
@@ -37,6 +38,7 @@ describe('TestTokens.vue', () => {
3738
removeDataTestid: false,
3839
removeDataTestId: false,
3940
removeDataQa: false,
41+
removeDataCy: false,
4042
removeClassTest: false,
4143
removeIdTest: false
4244
});
@@ -54,6 +56,7 @@ describe('TestTokens.vue', () => {
5456
removeDataTestid: true,
5557
removeDataTestId: false,
5658
removeDataQa: false,
59+
removeDataCy: false,
5760
removeClassTest: false,
5861
removeIdTest: false
5962
});
@@ -71,6 +74,7 @@ describe('TestTokens.vue', () => {
7174
removeDataTestid: false,
7275
removeDataTestId: true,
7376
removeDataQa: false,
77+
removeDataCy: false,
7478
removeClassTest: false,
7579
removeIdTest: false
7680
});
@@ -88,6 +92,25 @@ describe('TestTokens.vue', () => {
8892
removeDataTestid: false,
8993
removeDataTestId: false,
9094
removeDataQa: true,
95+
removeDataCy: false,
96+
removeClassTest: false,
97+
removeIdTest: false
98+
});
99+
100+
const wrapper = shallowMount(TestTokens);
101+
102+
expect(wrapper)
103+
.toMatchSnapshot();
104+
});
105+
106+
test('Only data-cy removed', () => {
107+
helpers.mockSettings({
108+
removeServerRendered: false,
109+
removeDataTest: false,
110+
removeDataTestid: false,
111+
removeDataTestId: false,
112+
removeDataQa: false,
113+
removeDataCy: true,
91114
removeClassTest: false,
92115
removeIdTest: false
93116
});
@@ -105,6 +128,7 @@ describe('TestTokens.vue', () => {
105128
removeDataTestid: false,
106129
removeDataTestId: false,
107130
removeDataQa: false,
131+
removeDataCy: false,
108132
removeClassTest: false,
109133
removeIdTest: true
110134
});
@@ -122,6 +146,7 @@ describe('TestTokens.vue', () => {
122146
removeDataTestid: false,
123147
removeDataTestId: false,
124148
removeDataQa: false,
149+
removeDataCy: false,
125150
removeClassTest: true,
126151
removeIdTest: false
127152
});

tests/__snapshots__/Demo.test.js.snap

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ exports[`Demo Default formatting 1`] = `
66
The above specific data-attrubutes are removed by default.
77
</h1>
88
<div>
9-
<span class="active" data-qa="span">
9+
<span class="active" data-qa="span" data-cy="span">
1010
These data-v ID's are removed too by default.
1111
</span>
1212
<!---->
@@ -56,7 +56,7 @@ exports[`Demo v2.0.2 settings 1`] = `
5656
The above specific data-attrubutes are removed by default.
5757
</h1>
5858
<div>
59-
<span class="active" data-qa="span" data-v-b3d95ac7>
59+
<span class="active" data-qa="span" data-cy="span" data-v-b3d95ac7>
6060
These data-v ID's are removed too by default.
6161
</span>
6262
<!---->

tests/__snapshots__/ScopedStylesInDependency.test.js.snap

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,13 @@ exports[`ScopedStylesInDependency.vue Snapshot data-v ids remain 1`] = `
88
</div>
99
<div class="vgt-responsive" style="overflow: scroll-y; max-height: auto;">
1010
<table class="vgt-table bordered ">
11-
<thead data-v-eb5a915e>
12-
<tr data-v-eb5a915e>
13-
<th data-v-eb5a915e class="vgt-left-align sortable" style="min-width: auto; max-width: auto; width: auto;">
14-
<span data-v-eb5a915e>Name</span>
11+
<thead data-v-2d1e3c02>
12+
<tr data-v-2d1e3c02>
13+
<th data-v-2d1e3c02 class="vgt-left-align sortable" style="min-width: auto; max-width: auto; width: auto;">
14+
<span data-v-2d1e3c02>Name</span>
1515
</th>
16-
<th data-v-eb5a915e class="vgt-left-align sortable" style="min-width: auto; max-width: auto; width: auto;">
17-
<span data-v-eb5a915e>Favorite data-v-id=""</span>
16+
<th data-v-2d1e3c02 class="vgt-left-align sortable" style="min-width: auto; max-width: auto; width: auto;">
17+
<span data-v-2d1e3c02>Favorite data-v-id=""</span>
1818
</th>
1919
</tr>
2020
</thead>

0 commit comments

Comments
 (0)