Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: error when updating a 9.X value in 10.X in the pluginsFile #20521

Merged
merged 119 commits into from
Mar 24, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
119 commits
Select commit Hold shift + click to select a range
83e595e
wrap options component as a test
elevatebart Mar 7, 2022
1dc3d92
show a good looking error with proper stacktrace
elevatebart Mar 7, 2022
60b9add
quick refactor
elevatebart Mar 7, 2022
96cdd84
add nice error structure
elevatebart Mar 7, 2022
ae3d86f
prevent using spread or clone to update the values
elevatebart Mar 7, 2022
c085d46
add coments
elevatebart Mar 7, 2022
46f539a
make the comments visible in JSDOc
elevatebart Mar 7, 2022
5c43b6d
add e2e tests
elevatebart Mar 8, 2022
ee37eca
have the breaking options only in one place
elevatebart Mar 8, 2022
4838f04
add test and duplictae
elevatebart Mar 8, 2022
d8d007f
if the 2 arrays are disconnect throw an understandable error
elevatebart Mar 8, 2022
f24e7e3
Merge branch '10.0-release' into elevatebart/feat/error-when-non-migr…
Mar 8, 2022
1789bab
update generated project files
elevatebart Mar 8, 2022
603b036
add a migration error snapshot
elevatebart Mar 8, 2022
11ed1af
add error snapshots
elevatebart Mar 8, 2022
d2af45e
fix error
elevatebart Mar 8, 2022
e730843
reword comment
Mar 8, 2022
1111a5a
ts issue
elevatebart Mar 8, 2022
b19fa5e
Merge branch '10.0-release' into elevatebart/feat/error-when-non-migr…
Mar 8, 2022
6d69f7e
Merge branch '10.0-release' into elevatebart/feat/error-when-non-migr…
Mar 8, 2022
7622472
Merge branch '10.0-release' into elevatebart/feat/error-when-non-migr…
Mar 9, 2022
3851b76
Merge branch '10.0-release' into elevatebart/feat/error-when-non-migr…
Mar 9, 2022
390d3e6
Merge branch '10.0-release' into elevatebart/feat/error-when-non-migr…
Mar 9, 2022
43bbeb7
simplify error process with only removed values
elevatebart Mar 9, 2022
26c567e
update error messages
elevatebart Mar 9, 2022
d79946c
make better error messages
elevatebart Mar 9, 2022
4b2aaa5
fix error names and create plugins error
elevatebart Mar 10, 2022
a1eb213
convert config to typescript
elevatebart Mar 10, 2022
b294091
make config package type safe
elevatebart Mar 10, 2022
f72c689
remove pluginsFile from app
elevatebart Mar 10, 2022
34b7f68
configUtils should be imported properly
elevatebart Mar 10, 2022
423387d
move options to config package
elevatebart Mar 10, 2022
a70e07c
fix browser validation
elevatebart Mar 10, 2022
72c9797
finishing touches
elevatebart Mar 10, 2022
a45e81e
Add missing error tests
elevatebart Mar 10, 2022
64456ee
Merge branch '10.0-release' into elevatebart/feat/error-when-non-migr…
Mar 10, 2022
91dcf1d
cleanup some types
elevatebart Mar 10, 2022
d8b38b0
fix types
elevatebart Mar 10, 2022
19aec84
fix types
elevatebart Mar 10, 2022
8572d52
nice refactor
elevatebart Mar 10, 2022
4d5df3c
update error and tests
elevatebart Mar 10, 2022
4470f91
simplify BreakingOption Type name
elevatebart Mar 10, 2022
93c8de3
Merge branch '10.0-release' into elevatebart/feat/error-when-non-migr…
Mar 10, 2022
327b4da
rename and update error to not mention setup
elevatebart Mar 10, 2022
be9eca2
generated error
elevatebart Mar 10, 2022
5fd7d94
align version of mocha types
elevatebart Mar 10, 2022
9d1b7a6
clarify what is happening when running setup
elevatebart Mar 10, 2022
e42814e
refactor validation imports lodash
elevatebart Mar 10, 2022
a5a2fef
bring back pluginsFile to make tests pass
elevatebart Mar 11, 2022
0bc6fe6
repair validation
elevatebart Mar 11, 2022
35a81a4
fix unit tests
elevatebart Mar 11, 2022
08d07e9
clean up a little
elevatebart Mar 11, 2022
44fb35a
fix types
elevatebart Mar 11, 2022
4d14b48
Merge branch '10.0-release' into elevatebart/feat/error-when-non-migr…
Mar 11, 2022
8943951
fix: replace testfiles error with the 3 errors
elevatebart Mar 11, 2022
bee32f9
use the existing message to make the existing better
elevatebart Mar 11, 2022
5b67d12
fix error types
elevatebart Mar 11, 2022
139e21d
make better types
elevatebart Mar 11, 2022
b9eeb33
Merge branch '10.0-release' into elevatebart/feat/error-when-non-migr…
Mar 11, 2022
12a7a29
clean up mocha types
elevatebart Mar 11, 2022
a9cc802
give a little more time to error test to avoid flake
elevatebart Mar 11, 2022
2b87871
update patch and remove some folders
elevatebart Mar 11, 2022
9c8bc44
Merge branch '10.0-release' into elevatebart/feat/error-when-non-migr…
Mar 11, 2022
ec28117
make config package type safe
elevatebart Mar 11, 2022
dfc063d
generate the file with gulp task
elevatebart Mar 11, 2022
8233a1d
rename specs so they are picked up
elevatebart Mar 11, 2022
fd6119a
fix babel typescript
elevatebart Mar 11, 2022
81ff845
add missing snapshots
elevatebart Mar 11, 2022
2c14728
fix type errors
elevatebart Mar 11, 2022
99311bb
fix types again
elevatebart Mar 11, 2022
ff5a783
fix types again
elevatebart Mar 11, 2022
5564ba3
remove mocha config
elevatebart Mar 11, 2022
48a2c48
restore old scripts
elevatebart Mar 11, 2022
8cbfbf6
Merge branch '10.0-release' into elevatebart/refactor/make-config-typ…
Mar 11, 2022
e8dafc8
Merge branch 'elevatebart/refactor/make-config-type-safe' into elevat…
elevatebart Mar 11, 2022
71bdd09
add comment
elevatebart Mar 11, 2022
59d97a0
extract wrap from run_plugins
elevatebart Mar 11, 2022
d5d2f4b
change debug
elevatebart Mar 11, 2022
50421d1
remove some changes
elevatebart Mar 12, 2022
6efd656
remove duplicated files
elevatebart Mar 12, 2022
2806276
restore ts
elevatebart Mar 12, 2022
2c7f11b
check root options too
elevatebart Mar 12, 2022
84b55cc
Merge branch '10.0-release' into elevatebart/feat/error-when-non-migr…
elevatebart Mar 22, 2022
0e7632f
remove mocha changes
elevatebart Mar 22, 2022
b81f189
bring back old errors
elevatebart Mar 22, 2022
72381ff
wat ?
elevatebart Mar 22, 2022
406cc4a
restore error snapshots
elevatebart Mar 22, 2022
18835f8
fix types
elevatebart Mar 22, 2022
a26dbb5
move plugin config wrapper towards config
elevatebart Mar 22, 2022
25f1ed5
make config simpler, better debug too
elevatebart Mar 22, 2022
9c5e2f6
Merge branch '10.0-release' into elevatebart/feat/error-when-non-migr…
Mar 22, 2022
3abd1e7
finish error renaming
elevatebart Mar 22, 2022
552d68a
avoid changing mocha
elevatebart Mar 22, 2022
4601473
remove unrelated fixes
elevatebart Mar 22, 2022
13175c0
remove changes to example
elevatebart Mar 22, 2022
e1750c0
make error management simpler
elevatebart Mar 23, 2022
7118dca
make errors tests type safe again
elevatebart Mar 23, 2022
5a64874
fix types
elevatebart Mar 23, 2022
5950d2a
simplify
elevatebart Mar 23, 2022
f4372a6
Merge branch '10.0-release' into elevatebart/feat/error-when-non-migr…
elevatebart Mar 23, 2022
bdbd753
remove changed files
elevatebart Mar 23, 2022
33a4b5c
fix snapshots in unit tests
elevatebart Mar 23, 2022
e91330a
make app tests work again
elevatebart Mar 23, 2022
f01a4b8
Merge branch '10.0-release' into elevatebart/feat/error-when-non-migr…
Mar 23, 2022
7294e21
remove changes to the plugins error processing
elevatebart Mar 23, 2022
118d78e
Merge branch '10.0-release' into elevatebart/feat/error-when-non-migr…
Mar 23, 2022
ce08508
remove integrationFolder from all tests
elevatebart Mar 23, 2022
f6253bc
test: make sure tests fail
elevatebart Mar 23, 2022
bcbee9d
better tests
elevatebart Mar 23, 2022
7fbe49c
fix: validate testing type
elevatebart Mar 23, 2022
909e985
test: fix integration test for server
elevatebart Mar 23, 2022
cac84aa
update snapshot errors
elevatebart Mar 23, 2022
db778b7
fix: make error_ui spec work
elevatebart Mar 23, 2022
93060ef
Merge branch '10.0-release' into elevatebart/feat/error-when-non-migr…
Mar 23, 2022
b6cd9d8
test: fix snapshots
elevatebart Mar 23, 2022
6a9598b
Merge branch '10.0-release' into elevatebart/feat/error-when-non-migr…
Mar 23, 2022
5629c9e
Merge branch '10.0-release' into elevatebart/feat/error-when-non-migr…
Mar 24, 2022
ab3df80
Merge branch '10.0-release' into elevatebart/feat/error-when-non-migr…
Mar 24, 2022
4c71ef6
Merge branch '10.0-release' into elevatebart/feat/error-when-non-migr…
Mar 24, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 0 additions & 6 deletions cli/types/cypress.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2697,12 +2697,6 @@ declare namespace Cypress {
* @default "cypress/fixtures"
*/
fixturesFolder: string | false
/**
* Path to folder containing integration test files
* @default "cypress/integration"
* @deprecated
*/
integrationFolder: string
/**
* Path to folder where files downloaded during a test are saved
* @default "cypress/downloads"
Expand Down
10 changes: 6 additions & 4 deletions npm/webpack-preprocessor/cypress.config.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
module.exports = {
'integrationFolder': 'cypress/tests',
'e2e': {
const { defineConfig } = require('cypress')

module.exports = defineConfig({
e2e: {
specPattern: 'cypress/tests/**/*',
setupNodeEvents (on, config) {
const webpackPreprocessor = require('./index')

Expand All @@ -9,4 +11,4 @@ module.exports = {
return config
},
},
}
})
6 changes: 4 additions & 2 deletions packages/config/__snapshots__/index.spec.ts.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
exports['src/index .getBreakingKeys returns list of breaking config keys 1'] = [
"blacklistHosts",
"componentFolder",
"integrationFolder",
"testFiles",
"ignoreTestFiles",
"experimentalComponentTesting",
"experimentalGetCookiesSameSite",
"experimentalNetworkStubbing",
Expand All @@ -10,8 +13,7 @@ exports['src/index .getBreakingKeys returns list of breaking config keys 1'] = [
"firefoxGcInterval",
"nodeVersion",
"nodeVersion",
"pluginsFile",
"testFiles"
"pluginsFile"
]

exports['src/index .getDefaultValues returns list of public config keys 1'] = {
Expand Down
184 changes: 92 additions & 92 deletions packages/config/__snapshots__/validation.spec.ts.js
Original file line number Diff line number Diff line change
@@ -1,16 +1,24 @@
exports['undefined browsers'] = `
Missing browsers list
`
exports['src/validation .isValidClientCertificatesSet returns error message for certs not passed as an array array 1'] = {
"key": "mockConfigKey",
"value": "1",
"type": "a positive number or null or an object with keys \"openMode\" and \"runMode\" with values of numbers or nulls"
}

exports['empty list of browsers'] = `
Expected at least one browser
`
exports['src/validation .isValidClientCertificatesSet returns error message for certs object without url 1'] = {
"key": "clientCertificates[0].url",
"type": "a URL matcher"
}

exports['browsers list with a string'] = {
"key": "name",
"value": "foo",
"type": "a non-empty string",
"list": "browsers"
exports['missing https protocol'] = {
"key": "clientCertificates[0].url",
"value": "http://url.com",
"type": "an https protocol"
}

exports['invalid url'] = {
"key": "clientCertificates[0].url",
"value": "not *",
"type": "a valid URL"
}

exports['src/validation .isValidBrowser passes valid browsers and forms error messages for invalid ones isValidBrowser 1'] = {
Expand Down Expand Up @@ -82,46 +90,63 @@ exports['src/validation .isValidBrowser passes valid browsers and forms error me
]
}

exports['not one of the strings error message'] = {
"key": "test",
"value": "nope",
"type": "one of these values: \"foo\", \"bar\""
exports['undefined browsers'] = `
Missing browsers list
`

exports['empty list of browsers'] = `
Expected at least one browser
`

exports['browsers list with a string'] = {
"key": "name",
"value": "foo",
"type": "a non-empty string",
"list": "browsers"
}

exports['number instead of string'] = {
"key": "test",
"value": 42,
"type": "one of these values: \"foo\", \"bar\""
exports['invalid retry value'] = {
"key": "mockConfigKey",
"value": "1",
"type": "a positive number or null or an object with keys \"openMode\" and \"runMode\" with values of numbers or nulls"
}

exports['null instead of string'] = {
"key": "test",
"value": null,
"type": "one of these values: \"foo\", \"bar\""
exports['invalid retry object'] = {
"key": "mockConfigKey",
"value": {
"fakeMode": 1
},
"type": "a positive number or null or an object with keys \"openMode\" and \"runMode\" with values of numbers or nulls"
}

exports['not one of the numbers error message'] = {
"key": "test",
"value": 4,
"type": "one of these values: 1, 2, 3"
exports['src/validation .isPlainObject returns error message when value is a not an object 1'] = {
"key": "mockConfigKey",
"value": 1,
"type": "a plain object"
}

exports['string instead of a number'] = {
"key": "test",
"value": "foo",
"type": "one of these values: 1, 2, 3"
exports['src/validation .isNumber returns error message when value is a not a number 1'] = {
"key": "mockConfigKey",
"value": "string",
"type": "a number"
}

exports['null instead of a number'] = {
"key": "test",
exports['src/validation .isNumberOrFalse returns error message when value is a not number or false 1'] = {
"key": "mockConfigKey",
"value": null,
"type": "one of these values: 1, 2, 3"
"type": "a number or false"
}

exports['src/validation .isStringOrFalse returns error message when value is neither string nor false 1'] = {
exports['not qualified url'] = {
"key": "mockConfigKey",
"value": null,
"type": "a string or false"
"value": "url.com",
"type": "a fully qualified URL (starting with `http://` or `https://`)"
}

exports['empty string'] = {
"key": "mockConfigKey",
"value": "",
"type": "a fully qualified URL (starting with `http://` or `https://`)"
}

exports['src/validation .isBoolean returns error message when value is a not a string 1'] = {
Expand All @@ -142,6 +167,12 @@ exports['src/validation .isArray returns error message when value is a non-array
"type": "an array"
}

exports['src/validation .isStringOrFalse returns error message when value is neither string nor false 1'] = {
"key": "mockConfigKey",
"value": null,
"type": "a string or false"
}

exports['not string or array'] = {
"key": "mockConfigKey",
"value": null,
Expand All @@ -158,69 +189,38 @@ exports['array of non-strings'] = {
"type": "a string or an array of strings"
}

exports['src/validation .isNumberOrFalse returns error message when value is a not number or false 1'] = {
"key": "mockConfigKey",
"value": null,
"type": "a number or false"
}

exports['src/validation .isPlainObject returns error message when value is a not an object 1'] = {
"key": "mockConfigKey",
"value": 1,
"type": "a plain object"
}

exports['src/validation .isNumber returns error message when value is a not a number 1'] = {
"key": "mockConfigKey",
"value": "string",
"type": "a number"
}

exports['invalid retry value'] = {
"key": "mockConfigKey",
"value": "1",
"type": "a positive number or null or an object with keys \"openMode\" and \"runMode\" with values of numbers or nulls"
}

exports['invalid retry object'] = {
"key": "mockConfigKey",
"value": {
"fakeMode": 1
},
"type": "a positive number or null or an object with keys \"openMode\" and \"runMode\" with values of numbers or nulls"
}

exports['src/validation .isValidClientCertificatesSet returns error message for certs not passed as an array array 1'] = {
"key": "mockConfigKey",
"value": "1",
"type": "a positive number or null or an object with keys \"openMode\" and \"runMode\" with values of numbers or nulls"
exports['not one of the strings error message'] = {
"key": "test",
"value": "nope",
"type": "one of these values: \"foo\", \"bar\""
}

exports['src/validation .isValidClientCertificatesSet returns error message for certs object without url 1'] = {
"key": "clientCertificates[0].url",
"type": "a URL matcher"
exports['number instead of string'] = {
"key": "test",
"value": 42,
"type": "one of these values: \"foo\", \"bar\""
}

exports['missing https protocol'] = {
"key": "clientCertificates[0].url",
"value": "http://url.com",
"type": "an https protocol"
exports['null instead of string'] = {
"key": "test",
"value": null,
"type": "one of these values: \"foo\", \"bar\""
}

exports['invalid url'] = {
"key": "clientCertificates[0].url",
"value": "not *",
"type": "a valid URL"
exports['not one of the numbers error message'] = {
"key": "test",
"value": 4,
"type": "one of these values: 1, 2, 3"
}

exports['not qualified url'] = {
"key": "mockConfigKey",
"value": "url.com",
"type": "a fully qualified URL (starting with `http://` or `https://`)"
exports['string instead of a number'] = {
"key": "test",
"value": "foo",
"type": "one of these values: 1, 2, 3"
}

exports['empty string'] = {
"key": "mockConfigKey",
"value": "",
"type": "a fully qualified URL (starting with `http://` or `https://`)"
exports['null instead of a number'] = {
"key": "test",
"value": null,
"type": "one of these values: 1, 2, 3"
}
1 change: 1 addition & 0 deletions packages/config/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
"@packages/root": "0.0.0-development",
"@packages/ts": "0.0.0-development",
"@packages/types": "0.0.0-development",
"@types/mocha": "9.1.0",
"chai": "4.2.0",
"mocha": "7.0.1"
},
Expand Down
19 changes: 15 additions & 4 deletions packages/config/src/options.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import pkg from '@packages/root'

export type BreakingOptionErrorKey =
| 'COMPONENT_FOLDER_REMOVED'
| 'INTEGRATION_FOLDER_REMOVED'
| 'CONFIG_FILE_INVALID_ROOT_CONFIG'
| 'CONFIG_FILE_INVALID_ROOT_CONFIG_E2E'
| 'CONFIG_FILE_INVALID_TESTING_TYPE_CONFIG_COMPONENT'
Expand Down Expand Up @@ -544,6 +545,20 @@ export const breakingOptions: Array<BreakingOption> = [
name: 'componentFolder',
errorKey: 'COMPONENT_FOLDER_REMOVED',
isWarning: false,
}, {
name: 'integrationFolder',
errorKey: 'INTEGRATION_FOLDER_REMOVED',
isWarning: false,
}, {
name: 'testFiles',
errorKey: 'TEST_FILES_RENAMED',
newName: 'specPattern',
isWarning: false,
}, {
name: 'ignoreTestFiles',
errorKey: 'TEST_FILES_RENAMED',
newName: 'excludeSpecPattern',
isWarning: false,
}, {
name: 'experimentalComponentTesting',
errorKey: 'EXPERIMENTAL_COMPONENT_TESTING_REMOVED',
Expand Down Expand Up @@ -586,10 +601,6 @@ export const breakingOptions: Array<BreakingOption> = [
}, {
name: 'pluginsFile',
errorKey: 'PLUGINS_FILE_CONFIG_OPTION_REMOVED',
}, {
name: 'testFiles',
errorKey: 'TEST_FILES_RENAMED',
isWarning: false,
},
]

Expand Down
3 changes: 1 addition & 2 deletions packages/config/tsconfig.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,7 @@
"src/*.ts"
],
"exclude": [
"test",
"script"
"test"
],
"compilerOptions": {
"strict": true,
Expand Down

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading