diff --git a/.github/workflows/e2e-test.yml b/.github/workflows/e2e-test.yml
index 35136b74..8d1842ac 100644
--- a/.github/workflows/e2e-test.yml
+++ b/.github/workflows/e2e-test.yml
@@ -131,7 +131,7 @@ jobs:
file.copy("app-files/Box.jsx", "RhinoApp/app/js/Box.jsx", overwrite = TRUE)
file.copy("app-files/test-hello.R", "RhinoApp/tests/testthat/test-hello.R", overwrite = TRUE)
file.copy("app-files/test-say_hello.R", "RhinoApp/tests/testthat/test-say_hello.R", overwrite = TRUE)
- file.copy("app-files/hello.spec.js", "RhinoApp/tests/cypress/integration/hello.spec.js", overwrite = TRUE)
+ file.copy("app-files/hello.cy.js", "RhinoApp/tests/cypress/e2e/hello.cy.js", overwrite = TRUE)
file.remove("RhinoApp/tests/testthat/test-main.R")
- name: Cypress tests should confirm RhinoApp works
diff --git a/DESCRIPTION b/DESCRIPTION
index 7bc0a44c..0df58f1d 100644
--- a/DESCRIPTION
+++ b/DESCRIPTION
@@ -1,6 +1,6 @@
Package: rhino
Title: A Framework for Enterprise Shiny Applications
-Version: 1.5.0
+Version: 1.5.0.9000
Authors@R:
c(
person("Kamil", "Żyła", role = c("aut", "cre"), email = "opensource+kamil@appsilon.com"),
diff --git a/NEWS.md b/NEWS.md
index 41b8b1cf..c3beda78 100644
--- a/NEWS.md
+++ b/NEWS.md
@@ -1,4 +1,8 @@
-# rhino 1.5.0
+# rhino (development)
+
+1. Cypress updated to version 13.
+
+# [rhino 1.5.0](https://github.com/Appsilon/rhino/releases/tag/v1.5.0)
1. Add Rstudio Addins for lint, build and test Sass, R and JavaScript. Updated new module Addin.
2. Fixes timeout during Cypress E2E tests with GitHub Actions.
diff --git a/R/tools.R b/R/tools.R
index eca1a76b..859c2ca2 100644
--- a/R/tools.R
+++ b/R/tools.R
@@ -322,6 +322,12 @@ lint_sass <- function(fix = FALSE) {
#' defined in the `tests/cypress` directory.
#' Requires Node.js to be available on the system.
#'
+#' Check out:
+# nolint start: line_length_linter
+#' [Tutorial: Write end-to-end tests with Cypress](https://appsilon.github.io/rhino/articles/tutorial/write-end-to-end-tests-with-cypress.html)
+# nolint end
+#' to learn how to write end-to-end tests for your Rhino app.
+#'
#' If you want to write end-to-end tests with `{shinytest2}`, see our
#' [How-to: Use shinytest2](https://appsilon.github.io/rhino/articles/how-to/use-shinytest2.html)
#' guide.
diff --git a/inst/templates/e2e_tests/tests/cypress.config.js b/inst/templates/e2e_tests/tests/cypress.config.js
new file mode 100644
index 00000000..5c23de01
--- /dev/null
+++ b/inst/templates/e2e_tests/tests/cypress.config.js
@@ -0,0 +1,7 @@
+module.exports = {
+ e2e: {
+ setupNodeEvents(on, config) {},
+ baseUrl: 'http://localhost:3333',
+ supportFile: false,
+ },
+}
diff --git a/inst/templates/e2e_tests/tests/cypress.json b/inst/templates/e2e_tests/tests/cypress.json
deleted file mode 100644
index 03f525b1..00000000
--- a/inst/templates/e2e_tests/tests/cypress.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "baseUrl": "http://localhost:3333",
- "pluginsFile": false,
- "supportFile": false
-}
diff --git a/inst/templates/e2e_tests/tests/cypress/integration/app.spec.js b/inst/templates/e2e_tests/tests/cypress/e2e/app.cy.js
similarity index 100%
rename from inst/templates/e2e_tests/tests/cypress/integration/app.spec.js
rename to inst/templates/e2e_tests/tests/cypress/e2e/app.cy.js
diff --git a/inst/templates/node/package-lock.json b/inst/templates/node/package-lock.json
index 9a28f16e..151d3048 100644
--- a/inst/templates/node/package-lock.json
+++ b/inst/templates/node/package-lock.json
@@ -10,7 +10,7 @@
"@babel/preset-env": "^7.15.4",
"@babel/preset-react": "^7.22.3",
"babel-loader": "^8.2.2",
- "cypress": "^7.6.0",
+ "cypress": "^13.0.0",
"eslint": "^7.32.0",
"eslint-config-airbnb": "^19.0.4",
"eslint-import-resolver-webpack": "^0.13.1",
@@ -1704,9 +1704,10 @@
}
},
"node_modules/@cypress/request": {
- "version": "2.88.10",
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@cypress/request/-/request-3.0.1.tgz",
+ "integrity": "sha512-TWivJlJi8ZDx2wGOw1dbLuHJKUYX7bWySw377nlnGOW3hP9/MUKIsEdXT/YngWxVdgNCHRBmFlBipE+5/2ZZlQ==",
"dev": true,
- "license": "Apache-2.0",
"dependencies": {
"aws-sign2": "~0.7.0",
"aws4": "^1.8.0",
@@ -1721,9 +1722,9 @@
"json-stringify-safe": "~5.0.1",
"mime-types": "~2.1.19",
"performance-now": "^2.1.0",
- "qs": "~6.5.2",
+ "qs": "6.10.4",
"safe-buffer": "^5.1.2",
- "tough-cookie": "~2.5.0",
+ "tough-cookie": "^4.1.3",
"tunnel-agent": "^0.6.0",
"uuid": "^8.3.2"
},
@@ -2067,9 +2068,10 @@
"license": "MIT"
},
"node_modules/@types/node": {
- "version": "17.0.18",
- "dev": true,
- "license": "MIT"
+ "version": "18.18.6",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-18.18.6.tgz",
+ "integrity": "sha512-wf3Vz+jCmOQ2HV1YUJuCWdL64adYxumkrxtc+H1VUQlnQI04+5HtH+qZCOE21lBE7gIrt+CwX2Wv8Acrw5Ak6w==",
+ "dev": true
},
"node_modules/@types/normalize-package-data": {
"version": "2.4.1",
@@ -2082,9 +2084,10 @@
"license": "MIT"
},
"node_modules/@types/sinonjs__fake-timers": {
- "version": "6.0.4",
- "dev": true,
- "license": "MIT"
+ "version": "8.1.1",
+ "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.1.tgz",
+ "integrity": "sha512-0kSuKjAS0TrGLJ0M/+8MaFkGsQhZpB6pxOmvS3K8FYI72K//YmdfoW9X2qPsAKh1mkwxGD5zib9s1FIFed6E8g==",
+ "dev": true
},
"node_modules/@types/sizzle": {
"version": "2.3.3",
@@ -2541,16 +2544,18 @@
},
"node_modules/asn1": {
"version": "0.2.6",
+ "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz",
+ "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"safer-buffer": "~2.1.0"
}
},
"node_modules/assert-plus": {
"version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
+ "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=0.8"
}
@@ -2577,8 +2582,9 @@
},
"node_modules/asynckit": {
"version": "0.4.0",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
+ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
+ "dev": true
},
"node_modules/at-least-node": {
"version": "1.0.0",
@@ -2659,16 +2665,18 @@
},
"node_modules/aws-sign2": {
"version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
+ "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==",
"dev": true,
- "license": "Apache-2.0",
"engines": {
"node": "*"
}
},
"node_modules/aws4": {
- "version": "1.11.0",
- "dev": true,
- "license": "MIT"
+ "version": "1.12.0",
+ "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.12.0.tgz",
+ "integrity": "sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==",
+ "dev": true
},
"node_modules/axe-core": {
"version": "4.7.2",
@@ -2821,10 +2829,31 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/base64-js": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
+ "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ]
+ },
"node_modules/bcrypt-pbkdf": {
"version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
+ "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==",
"dev": true,
- "license": "BSD-3-Clause",
"dependencies": {
"tweetnacl": "^0.14.3"
}
@@ -2902,6 +2931,30 @@
"url": "https://opencollective.com/browserslist"
}
},
+ "node_modules/buffer": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
+ "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "dependencies": {
+ "base64-js": "^1.3.1",
+ "ieee754": "^1.1.13"
+ }
+ },
"node_modules/buffer-crc32": {
"version": "0.2.13",
"dev": true,
@@ -2996,8 +3049,9 @@
},
"node_modules/caseless": {
"version": "0.12.0",
- "dev": true,
- "license": "Apache-2.0"
+ "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
+ "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==",
+ "dev": true
},
"node_modules/chalk": {
"version": "4.1.2",
@@ -3224,8 +3278,9 @@
},
"node_modules/combined-stream": {
"version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
+ "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
"dev": true,
- "license": "MIT",
"dependencies": {
"delayed-stream": "~1.0.0"
},
@@ -3234,9 +3289,10 @@
}
},
"node_modules/commander": {
- "version": "5.1.0",
+ "version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz",
+ "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">= 6"
}
@@ -3301,8 +3357,9 @@
},
"node_modules/core-util-is": {
"version": "1.0.2",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
+ "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==",
+ "dev": true
},
"node_modules/cosmiconfig": {
"version": "7.0.1",
@@ -3344,30 +3401,32 @@
}
},
"node_modules/cypress": {
- "version": "7.7.0",
+ "version": "13.3.2",
+ "resolved": "https://registry.npmjs.org/cypress/-/cypress-13.3.2.tgz",
+ "integrity": "sha512-ArLmZObcLC+xxCp7zJZZbhby9FUf5CueLej9dUM4+5j37FTS4iMSgHxQLDu01PydFUvDXcNoIVRCYrHHxD7Ybg==",
"dev": true,
"hasInstallScript": true,
- "license": "MIT",
"dependencies": {
- "@cypress/request": "^2.88.5",
+ "@cypress/request": "^3.0.0",
"@cypress/xvfb": "^1.2.4",
- "@types/node": "^14.14.31",
- "@types/sinonjs__fake-timers": "^6.0.2",
+ "@types/node": "^18.17.5",
+ "@types/sinonjs__fake-timers": "8.1.1",
"@types/sizzle": "^2.3.2",
"arch": "^2.2.0",
"blob-util": "^2.0.2",
"bluebird": "^3.7.2",
+ "buffer": "^5.6.0",
"cachedir": "^2.3.0",
"chalk": "^4.1.0",
"check-more-types": "^2.24.0",
"cli-cursor": "^3.1.0",
- "cli-table3": "~0.6.0",
- "commander": "^5.1.0",
+ "cli-table3": "~0.6.1",
+ "commander": "^6.2.1",
"common-tags": "^1.8.0",
"dayjs": "^1.10.4",
- "debug": "^4.3.2",
+ "debug": "^4.3.4",
"enquirer": "^2.3.6",
- "eventemitter2": "^6.4.3",
+ "eventemitter2": "6.4.7",
"execa": "4.1.0",
"executable": "^4.1.1",
"extract-zip": "2.0.1",
@@ -3380,29 +3439,25 @@
"listr2": "^3.8.3",
"lodash": "^4.17.21",
"log-symbols": "^4.0.0",
- "minimist": "^1.2.5",
+ "minimist": "^1.2.8",
"ospath": "^1.2.2",
"pretty-bytes": "^5.6.0",
- "ramda": "~0.27.1",
+ "process": "^0.11.10",
+ "proxy-from-env": "1.0.0",
"request-progress": "^3.0.0",
+ "semver": "^7.5.3",
"supports-color": "^8.1.1",
"tmp": "~0.2.1",
"untildify": "^4.0.0",
- "url": "^0.11.0",
"yauzl": "^2.10.0"
},
"bin": {
"cypress": "bin/cypress"
},
"engines": {
- "node": ">=12.0.0"
+ "node": "^16.0.0 || ^18.0.0 || >=20.0.0"
}
},
- "node_modules/cypress/node_modules/@types/node": {
- "version": "14.18.12",
- "dev": true,
- "license": "MIT"
- },
"node_modules/cypress/node_modules/execa": {
"version": "4.1.0",
"dev": true,
@@ -3433,6 +3488,21 @@
"node": ">=8.12.0"
}
},
+ "node_modules/cypress/node_modules/semver": {
+ "version": "7.5.4",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
+ "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
+ "dev": true,
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
"node_modules/damerau-levenshtein": {
"version": "1.0.8",
"resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz",
@@ -3442,8 +3512,9 @@
},
"node_modules/dashdash": {
"version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
+ "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==",
"dev": true,
- "license": "MIT",
"dependencies": {
"assert-plus": "^1.0.0"
},
@@ -3457,9 +3528,10 @@
"license": "MIT"
},
"node_modules/debug": {
- "version": "4.3.3",
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"ms": "2.1.2"
},
@@ -3545,8 +3617,9 @@
},
"node_modules/delayed-stream": {
"version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
+ "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=0.4.0"
}
@@ -3630,8 +3703,9 @@
},
"node_modules/ecc-jsbn": {
"version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
+ "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"jsbn": "~0.1.0",
"safer-buffer": "^2.1.0"
@@ -4338,22 +4412,6 @@
"dev": true,
"license": "MIT"
},
- "node_modules/eslint/node_modules/debug": {
- "version": "4.3.2",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ms": "2.1.2"
- },
- "engines": {
- "node": ">=6.0"
- },
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
- }
- },
"node_modules/eslint/node_modules/doctrine": {
"version": "3.0.0",
"dev": true,
@@ -4558,9 +4616,10 @@
}
},
"node_modules/eventemitter2": {
- "version": "6.4.5",
- "dev": true,
- "license": "MIT"
+ "version": "6.4.7",
+ "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.7.tgz",
+ "integrity": "sha512-tYUSVOGeQPKt/eC1ABfhHy5Xd96N3oIijJvN3O9+TsC28T5V9yX9oEfEK5faP0EFSNVOG97qtAS68GBrQB2hDg==",
+ "dev": true
},
"node_modules/events": {
"version": "3.3.0",
@@ -4659,11 +4718,12 @@
},
"node_modules/extsprintf": {
"version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
+ "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==",
"dev": true,
"engines": [
"node >=0.6.0"
- ],
- "license": "MIT"
+ ]
},
"node_modules/fast-deep-equal": {
"version": "3.1.3",
@@ -4824,16 +4884,18 @@
},
"node_modules/forever-agent": {
"version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
+ "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==",
"dev": true,
- "license": "Apache-2.0",
"engines": {
"node": "*"
}
},
"node_modules/form-data": {
"version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
+ "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"asynckit": "^0.4.0",
"combined-stream": "^1.0.6",
@@ -4977,8 +5039,9 @@
},
"node_modules/getpass": {
"version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
+ "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==",
"dev": true,
- "license": "MIT",
"dependencies": {
"assert-plus": "^1.0.0"
}
@@ -5278,8 +5341,9 @@
},
"node_modules/http-signature": {
"version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.3.6.tgz",
+ "integrity": "sha512-3adrsD6zqo4GsTqtO7FyrejHNv+NgiIfAfv68+jVlFmSr9OGy7zrxONceFRLKvnnZA5jbxQBX1u9PpB6Wi32Gw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"assert-plus": "^1.0.0",
"jsprim": "^2.0.2",
@@ -5297,6 +5361,26 @@
"node": ">=10.17.0"
}
},
+ "node_modules/ieee754": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
+ "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ]
+ },
"node_modules/ignore": {
"version": "4.0.6",
"dev": true,
@@ -5891,8 +5975,9 @@
},
"node_modules/isstream": {
"version": "0.1.2",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
+ "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==",
+ "dev": true
},
"node_modules/jest-worker": {
"version": "27.5.1",
@@ -5938,8 +6023,9 @@
},
"node_modules/jsbn": {
"version": "0.1.1",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
+ "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==",
+ "dev": true
},
"node_modules/jsesc": {
"version": "2.5.2",
@@ -5964,8 +6050,9 @@
},
"node_modules/json-schema": {
"version": "0.4.0",
- "dev": true,
- "license": "(AFL-2.1 OR BSD-3-Clause)"
+ "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz",
+ "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==",
+ "dev": true
},
"node_modules/json-schema-traverse": {
"version": "0.4.1",
@@ -5979,8 +6066,9 @@
},
"node_modules/json-stringify-safe": {
"version": "5.0.1",
- "dev": true,
- "license": "ISC"
+ "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
+ "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==",
+ "dev": true
},
"node_modules/json5": {
"version": "1.0.1",
@@ -6006,11 +6094,12 @@
},
"node_modules/jsprim": {
"version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-2.0.2.tgz",
+ "integrity": "sha512-gqXddjPqQ6G40VdnI6T6yObEC+pDNvyP95wdQhkWkg7crHH3km5qP1FsOXEkzEQwnz6gz5qGTn1c2Y52wP3OyQ==",
"dev": true,
"engines": [
"node >=0.6.0"
],
- "license": "MIT",
"dependencies": {
"assert-plus": "1.0.0",
"extsprintf": "1.3.0",
@@ -6383,22 +6472,6 @@
"parse-entities": "^2.0.0"
}
},
- "node_modules/micromark/node_modules/debug": {
- "version": "4.3.2",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ms": "2.1.2"
- },
- "engines": {
- "node": ">=6.0"
- },
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
- }
- },
"node_modules/micromatch": {
"version": "4.0.4",
"dev": true,
@@ -6469,9 +6542,9 @@
}
},
"node_modules/minimist": {
- "version": "1.2.7",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz",
- "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==",
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
+ "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
"dev": true,
"funding": {
"url": "https://github.com/sponsors/ljharb"
@@ -6901,8 +6974,9 @@
},
"node_modules/performance-now": {
"version": "2.1.0",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
+ "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==",
+ "dev": true
},
"node_modules/picocolors": {
"version": "1.0.0",
@@ -7115,6 +7189,15 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/process": {
+ "version": "0.11.10",
+ "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
+ "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.6.0"
+ }
+ },
"node_modules/progress": {
"version": "2.0.3",
"dev": true,
@@ -7135,6 +7218,12 @@
"react-is": "^16.13.1"
}
},
+ "node_modules/proxy-from-env": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.0.0.tgz",
+ "integrity": "sha512-F2JHgJQ1iqwnHDcQjVBsq3n/uoaFL+iPW/eAeL7kVxy/2RrWaN4WroKjjvbsoRtv0ftelNyC01bjRhn/bhcf4A==",
+ "dev": true
+ },
"node_modules/ps-tree": {
"version": "1.2.0",
"dev": true,
@@ -7150,9 +7239,10 @@
}
},
"node_modules/psl": {
- "version": "1.8.0",
- "dev": true,
- "license": "MIT"
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz",
+ "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==",
+ "dev": true
},
"node_modules/pump": {
"version": "3.0.0",
@@ -7172,19 +7262,25 @@
}
},
"node_modules/qs": {
- "version": "6.5.3",
+ "version": "6.10.4",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.4.tgz",
+ "integrity": "sha512-OQiU+C+Ds5qiH91qh/mg0w+8nwQuLjM4F4M/PbmhDOoYehPh+Fb0bDjtR1sOvy7YKxvj28Y/M0PhP5uVX0kB+g==",
"dev": true,
- "license": "BSD-3-Clause",
+ "dependencies": {
+ "side-channel": "^1.0.4"
+ },
"engines": {
"node": ">=0.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/querystring": {
- "version": "0.2.0",
- "dev": true,
- "engines": {
- "node": ">=0.4.x"
- }
+ "node_modules/querystringify": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz",
+ "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==",
+ "dev": true
},
"node_modules/queue-microtask": {
"version": "1.2.3",
@@ -7213,11 +7309,6 @@
"node": ">=8"
}
},
- "node_modules/ramda": {
- "version": "0.27.2",
- "dev": true,
- "license": "MIT"
- },
"node_modules/randombytes": {
"version": "2.1.0",
"dev": true,
@@ -7509,6 +7600,12 @@
"node": ">=0.10.0"
}
},
+ "node_modules/requires-port": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz",
+ "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==",
+ "dev": true
+ },
"node_modules/resolve": {
"version": "1.22.0",
"dev": true,
@@ -7649,8 +7746,9 @@
},
"node_modules/safer-buffer": {
"version": "2.1.2",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
+ "dev": true
},
"node_modules/sass": {
"version": "1.49.7",
@@ -7851,9 +7949,10 @@
"license": "BSD-3-Clause"
},
"node_modules/sshpk": {
- "version": "1.17.0",
+ "version": "1.18.0",
+ "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.18.0.tgz",
+ "integrity": "sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"asn1": "~0.2.3",
"assert-plus": "^1.0.0",
@@ -8175,22 +8274,6 @@
"stylelint": "^8.0.0 || ^9.0.0 || ^10.0.0 || ^11.0.0 || ^12.0.0 || ^13.0.0"
}
},
- "node_modules/stylelint/node_modules/debug": {
- "version": "4.3.2",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ms": "2.1.2"
- },
- "engines": {
- "node": ">=6.0"
- },
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
- }
- },
"node_modules/stylelint/node_modules/ignore": {
"version": "5.1.8",
"dev": true,
@@ -8415,15 +8498,27 @@
}
},
"node_modules/tough-cookie": {
- "version": "2.5.0",
+ "version": "4.1.3",
+ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.3.tgz",
+ "integrity": "sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==",
"dev": true,
- "license": "BSD-3-Clause",
"dependencies": {
- "psl": "^1.1.28",
- "punycode": "^2.1.1"
+ "psl": "^1.1.33",
+ "punycode": "^2.1.1",
+ "universalify": "^0.2.0",
+ "url-parse": "^1.5.3"
},
"engines": {
- "node": ">=0.8"
+ "node": ">=6"
+ }
+ },
+ "node_modules/tough-cookie/node_modules/universalify": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz",
+ "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==",
+ "dev": true,
+ "engines": {
+ "node": ">= 4.0.0"
}
},
"node_modules/trim-newlines": {
@@ -8461,8 +8556,9 @@
},
"node_modules/tunnel-agent": {
"version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
+ "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==",
"dev": true,
- "license": "Apache-2.0",
"dependencies": {
"safe-buffer": "^5.0.1"
},
@@ -8472,8 +8568,9 @@
},
"node_modules/tweetnacl": {
"version": "0.14.5",
- "dev": true,
- "license": "Unlicense"
+ "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
+ "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==",
+ "dev": true
},
"node_modules/type-check": {
"version": "0.4.0",
@@ -8652,20 +8749,16 @@
"punycode": "^2.1.0"
}
},
- "node_modules/url": {
- "version": "0.11.0",
+ "node_modules/url-parse": {
+ "version": "1.5.10",
+ "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz",
+ "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "punycode": "1.3.2",
- "querystring": "0.2.0"
+ "querystringify": "^2.1.1",
+ "requires-port": "^1.0.0"
}
},
- "node_modules/url/node_modules/punycode": {
- "version": "1.3.2",
- "dev": true,
- "license": "MIT"
- },
"node_modules/util-deprecate": {
"version": "1.0.2",
"dev": true,
@@ -8673,8 +8766,9 @@
},
"node_modules/uuid": {
"version": "8.3.2",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
+ "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==",
"dev": true,
- "license": "MIT",
"bin": {
"uuid": "dist/bin/uuid"
}
@@ -8695,25 +8789,18 @@
},
"node_modules/verror": {
"version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
+ "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==",
"dev": true,
"engines": [
"node >=0.6.0"
],
- "license": "MIT",
"dependencies": {
"assert-plus": "^1.0.0",
"core-util-is": "1.0.2",
"extsprintf": "^1.2.0"
}
},
- "node_modules/verror/node_modules/extsprintf": {
- "version": "1.4.1",
- "dev": true,
- "engines": [
- "node >=0.6.0"
- ],
- "license": "MIT"
- },
"node_modules/vfile": {
"version": "4.2.1",
"dev": true,
@@ -10104,7 +10191,9 @@
}
},
"@cypress/request": {
- "version": "2.88.10",
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@cypress/request/-/request-3.0.1.tgz",
+ "integrity": "sha512-TWivJlJi8ZDx2wGOw1dbLuHJKUYX7bWySw377nlnGOW3hP9/MUKIsEdXT/YngWxVdgNCHRBmFlBipE+5/2ZZlQ==",
"dev": true,
"requires": {
"aws-sign2": "~0.7.0",
@@ -10120,9 +10209,9 @@
"json-stringify-safe": "~5.0.1",
"mime-types": "~2.1.19",
"performance-now": "^2.1.0",
- "qs": "~6.5.2",
+ "qs": "6.10.4",
"safe-buffer": "^5.1.2",
- "tough-cookie": "~2.5.0",
+ "tough-cookie": "^4.1.3",
"tunnel-agent": "^0.6.0",
"uuid": "^8.3.2"
}
@@ -10377,7 +10466,9 @@
"dev": true
},
"@types/node": {
- "version": "17.0.18",
+ "version": "18.18.6",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-18.18.6.tgz",
+ "integrity": "sha512-wf3Vz+jCmOQ2HV1YUJuCWdL64adYxumkrxtc+H1VUQlnQI04+5HtH+qZCOE21lBE7gIrt+CwX2Wv8Acrw5Ak6w==",
"dev": true
},
"@types/normalize-package-data": {
@@ -10389,7 +10480,9 @@
"dev": true
},
"@types/sinonjs__fake-timers": {
- "version": "6.0.4",
+ "version": "8.1.1",
+ "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.1.tgz",
+ "integrity": "sha512-0kSuKjAS0TrGLJ0M/+8MaFkGsQhZpB6pxOmvS3K8FYI72K//YmdfoW9X2qPsAKh1mkwxGD5zib9s1FIFed6E8g==",
"dev": true
},
"@types/sizzle": {
@@ -10711,6 +10804,8 @@
},
"asn1": {
"version": "0.2.6",
+ "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz",
+ "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==",
"dev": true,
"requires": {
"safer-buffer": "~2.1.0"
@@ -10718,6 +10813,8 @@
},
"assert-plus": {
"version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
+ "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==",
"dev": true
},
"ast-types-flow": {
@@ -10737,6 +10834,8 @@
},
"asynckit": {
"version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
+ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
"dev": true
},
"at-least-node": {
@@ -10787,10 +10886,14 @@
},
"aws-sign2": {
"version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
+ "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==",
"dev": true
},
"aws4": {
- "version": "1.11.0",
+ "version": "1.12.0",
+ "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.12.0.tgz",
+ "integrity": "sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==",
"dev": true
},
"axe-core": {
@@ -10893,8 +10996,16 @@
"version": "2.0.0",
"dev": true
},
+ "base64-js": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
+ "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
+ "dev": true
+ },
"bcrypt-pbkdf": {
"version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
+ "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==",
"dev": true,
"requires": {
"tweetnacl": "^0.14.3"
@@ -10948,6 +11059,16 @@
"picocolors": "^1.0.0"
}
},
+ "buffer": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
+ "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
+ "dev": true,
+ "requires": {
+ "base64-js": "^1.3.1",
+ "ieee754": "^1.1.13"
+ }
+ },
"buffer-crc32": {
"version": "0.2.13",
"dev": true
@@ -10999,6 +11120,8 @@
},
"caseless": {
"version": "0.12.0",
+ "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
+ "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==",
"dev": true
},
"chalk": {
@@ -11136,13 +11259,17 @@
},
"combined-stream": {
"version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
+ "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
"dev": true,
"requires": {
"delayed-stream": "~1.0.0"
}
},
"commander": {
- "version": "5.1.0",
+ "version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz",
+ "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==",
"dev": true
},
"common-tags": {
@@ -11192,6 +11319,8 @@
},
"core-util-is": {
"version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
+ "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==",
"dev": true
},
"cosmiconfig": {
@@ -11219,28 +11348,31 @@
"dev": true
},
"cypress": {
- "version": "7.7.0",
+ "version": "13.3.2",
+ "resolved": "https://registry.npmjs.org/cypress/-/cypress-13.3.2.tgz",
+ "integrity": "sha512-ArLmZObcLC+xxCp7zJZZbhby9FUf5CueLej9dUM4+5j37FTS4iMSgHxQLDu01PydFUvDXcNoIVRCYrHHxD7Ybg==",
"dev": true,
"requires": {
- "@cypress/request": "^2.88.5",
+ "@cypress/request": "^3.0.0",
"@cypress/xvfb": "^1.2.4",
- "@types/node": "^14.14.31",
- "@types/sinonjs__fake-timers": "^6.0.2",
+ "@types/node": "^18.17.5",
+ "@types/sinonjs__fake-timers": "8.1.1",
"@types/sizzle": "^2.3.2",
"arch": "^2.2.0",
"blob-util": "^2.0.2",
"bluebird": "^3.7.2",
+ "buffer": "^5.6.0",
"cachedir": "^2.3.0",
"chalk": "^4.1.0",
"check-more-types": "^2.24.0",
"cli-cursor": "^3.1.0",
- "cli-table3": "~0.6.0",
- "commander": "^5.1.0",
+ "cli-table3": "~0.6.1",
+ "commander": "^6.2.1",
"common-tags": "^1.8.0",
"dayjs": "^1.10.4",
- "debug": "^4.3.2",
+ "debug": "^4.3.4",
"enquirer": "^2.3.6",
- "eventemitter2": "^6.4.3",
+ "eventemitter2": "6.4.7",
"execa": "4.1.0",
"executable": "^4.1.1",
"extract-zip": "2.0.1",
@@ -11253,22 +11385,19 @@
"listr2": "^3.8.3",
"lodash": "^4.17.21",
"log-symbols": "^4.0.0",
- "minimist": "^1.2.5",
+ "minimist": "^1.2.8",
"ospath": "^1.2.2",
"pretty-bytes": "^5.6.0",
- "ramda": "~0.27.1",
+ "process": "^0.11.10",
+ "proxy-from-env": "1.0.0",
"request-progress": "^3.0.0",
+ "semver": "^7.5.3",
"supports-color": "^8.1.1",
"tmp": "~0.2.1",
"untildify": "^4.0.0",
- "url": "^0.11.0",
"yauzl": "^2.10.0"
},
"dependencies": {
- "@types/node": {
- "version": "14.18.12",
- "dev": true
- },
"execa": {
"version": "4.1.0",
"dev": true,
@@ -11287,6 +11416,15 @@
"human-signals": {
"version": "1.1.1",
"dev": true
+ },
+ "semver": {
+ "version": "7.5.4",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
+ "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
+ "dev": true,
+ "requires": {
+ "lru-cache": "^6.0.0"
+ }
}
}
},
@@ -11299,6 +11437,8 @@
},
"dashdash": {
"version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
+ "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==",
"dev": true,
"requires": {
"assert-plus": "^1.0.0"
@@ -11309,7 +11449,9 @@
"dev": true
},
"debug": {
- "version": "4.3.3",
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
"dev": true,
"requires": {
"ms": "2.1.2"
@@ -11370,6 +11512,8 @@
},
"delayed-stream": {
"version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
+ "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
"dev": true
},
"dir-glob": {
@@ -11429,6 +11573,8 @@
},
"ecc-jsbn": {
"version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
+ "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==",
"dev": true,
"requires": {
"jsbn": "~0.1.0",
@@ -11688,13 +11834,6 @@
"version": "1.1.3",
"dev": true
},
- "debug": {
- "version": "4.3.2",
- "dev": true,
- "requires": {
- "ms": "2.1.2"
- }
- },
"doctrine": {
"version": "3.0.0",
"dev": true,
@@ -12086,7 +12225,9 @@
}
},
"eventemitter2": {
- "version": "6.4.5",
+ "version": "6.4.7",
+ "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.7.tgz",
+ "integrity": "sha512-tYUSVOGeQPKt/eC1ABfhHy5Xd96N3oIijJvN3O9+TsC28T5V9yX9oEfEK5faP0EFSNVOG97qtAS68GBrQB2hDg==",
"dev": true
},
"events": {
@@ -12150,6 +12291,8 @@
},
"extsprintf": {
"version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
+ "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==",
"dev": true
},
"fast-deep-equal": {
@@ -12259,10 +12402,14 @@
},
"forever-agent": {
"version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
+ "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==",
"dev": true
},
"form-data": {
"version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
+ "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
"dev": true,
"requires": {
"asynckit": "^0.4.0",
@@ -12358,6 +12505,8 @@
},
"getpass": {
"version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
+ "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==",
"dev": true,
"requires": {
"assert-plus": "^1.0.0"
@@ -12551,6 +12700,8 @@
},
"http-signature": {
"version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.3.6.tgz",
+ "integrity": "sha512-3adrsD6zqo4GsTqtO7FyrejHNv+NgiIfAfv68+jVlFmSr9OGy7zrxONceFRLKvnnZA5jbxQBX1u9PpB6Wi32Gw==",
"dev": true,
"requires": {
"assert-plus": "^1.0.0",
@@ -12562,6 +12713,12 @@
"version": "2.1.0",
"dev": true
},
+ "ieee754": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
+ "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
+ "dev": true
+ },
"ignore": {
"version": "4.0.6",
"dev": true
@@ -12905,6 +13062,8 @@
},
"isstream": {
"version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
+ "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==",
"dev": true
},
"jest-worker": {
@@ -12941,6 +13100,8 @@
},
"jsbn": {
"version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
+ "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==",
"dev": true
},
"jsesc": {
@@ -12957,6 +13118,8 @@
},
"json-schema": {
"version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz",
+ "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==",
"dev": true
},
"json-schema-traverse": {
@@ -12969,6 +13132,8 @@
},
"json-stringify-safe": {
"version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
+ "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==",
"dev": true
},
"json5": {
@@ -12988,6 +13153,8 @@
},
"jsprim": {
"version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-2.0.2.tgz",
+ "integrity": "sha512-gqXddjPqQ6G40VdnI6T6yObEC+pDNvyP95wdQhkWkg7crHH3km5qP1FsOXEkzEQwnz6gz5qGTn1c2Y52wP3OyQ==",
"dev": true,
"requires": {
"assert-plus": "1.0.0",
@@ -13237,15 +13404,6 @@
"requires": {
"debug": "^4.0.0",
"parse-entities": "^2.0.0"
- },
- "dependencies": {
- "debug": {
- "version": "4.3.2",
- "dev": true,
- "requires": {
- "ms": "2.1.2"
- }
- }
}
},
"micromatch": {
@@ -13289,9 +13447,9 @@
}
},
"minimist": {
- "version": "1.2.7",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz",
- "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==",
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
+ "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
"dev": true
},
"minimist-options": {
@@ -13572,6 +13730,8 @@
},
"performance-now": {
"version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
+ "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==",
"dev": true
},
"picocolors": {
@@ -13712,6 +13872,12 @@
"version": "5.6.0",
"dev": true
},
+ "process": {
+ "version": "0.11.10",
+ "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
+ "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==",
+ "dev": true
+ },
"progress": {
"version": "2.0.3",
"dev": true
@@ -13728,6 +13894,12 @@
"react-is": "^16.13.1"
}
},
+ "proxy-from-env": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.0.0.tgz",
+ "integrity": "sha512-F2JHgJQ1iqwnHDcQjVBsq3n/uoaFL+iPW/eAeL7kVxy/2RrWaN4WroKjjvbsoRtv0ftelNyC01bjRhn/bhcf4A==",
+ "dev": true
+ },
"ps-tree": {
"version": "1.2.0",
"dev": true,
@@ -13736,7 +13908,9 @@
}
},
"psl": {
- "version": "1.8.0",
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz",
+ "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==",
"dev": true
},
"pump": {
@@ -13752,11 +13926,18 @@
"dev": true
},
"qs": {
- "version": "6.5.3",
- "dev": true
+ "version": "6.10.4",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.4.tgz",
+ "integrity": "sha512-OQiU+C+Ds5qiH91qh/mg0w+8nwQuLjM4F4M/PbmhDOoYehPh+Fb0bDjtR1sOvy7YKxvj28Y/M0PhP5uVX0kB+g==",
+ "dev": true,
+ "requires": {
+ "side-channel": "^1.0.4"
+ }
},
- "querystring": {
- "version": "0.2.0",
+ "querystringify": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz",
+ "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==",
"dev": true
},
"queue-microtask": {
@@ -13767,10 +13948,6 @@
"version": "4.0.1",
"dev": true
},
- "ramda": {
- "version": "0.27.2",
- "dev": true
- },
"randombytes": {
"version": "2.1.0",
"dev": true,
@@ -13971,6 +14148,12 @@
"version": "2.0.2",
"dev": true
},
+ "requires-port": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz",
+ "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==",
+ "dev": true
+ },
"resolve": {
"version": "1.22.0",
"dev": true,
@@ -14045,6 +14228,8 @@
},
"safer-buffer": {
"version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
"dev": true
},
"sass": {
@@ -14176,7 +14361,9 @@
"dev": true
},
"sshpk": {
- "version": "1.17.0",
+ "version": "1.18.0",
+ "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.18.0.tgz",
+ "integrity": "sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==",
"dev": true,
"requires": {
"asn1": "~0.2.3",
@@ -14379,13 +14566,6 @@
"write-file-atomic": "^3.0.3"
},
"dependencies": {
- "debug": {
- "version": "4.3.2",
- "dev": true,
- "requires": {
- "ms": "2.1.2"
- }
- },
"ignore": {
"version": "5.1.8",
"dev": true
@@ -14552,11 +14732,23 @@
}
},
"tough-cookie": {
- "version": "2.5.0",
+ "version": "4.1.3",
+ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.3.tgz",
+ "integrity": "sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==",
"dev": true,
"requires": {
- "psl": "^1.1.28",
- "punycode": "^2.1.1"
+ "psl": "^1.1.33",
+ "punycode": "^2.1.1",
+ "universalify": "^0.2.0",
+ "url-parse": "^1.5.3"
+ },
+ "dependencies": {
+ "universalify": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz",
+ "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==",
+ "dev": true
+ }
}
},
"trim-newlines": {
@@ -14583,6 +14775,8 @@
},
"tunnel-agent": {
"version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
+ "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==",
"dev": true,
"requires": {
"safe-buffer": "^5.0.1"
@@ -14590,6 +14784,8 @@
},
"tweetnacl": {
"version": "0.14.5",
+ "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
+ "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==",
"dev": true
},
"type-check": {
@@ -14704,18 +14900,14 @@
"punycode": "^2.1.0"
}
},
- "url": {
- "version": "0.11.0",
+ "url-parse": {
+ "version": "1.5.10",
+ "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz",
+ "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==",
"dev": true,
"requires": {
- "punycode": "1.3.2",
- "querystring": "0.2.0"
- },
- "dependencies": {
- "punycode": {
- "version": "1.3.2",
- "dev": true
- }
+ "querystringify": "^2.1.1",
+ "requires-port": "^1.0.0"
}
},
"util-deprecate": {
@@ -14724,6 +14916,8 @@
},
"uuid": {
"version": "8.3.2",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
+ "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==",
"dev": true
},
"v8-compile-cache": {
@@ -14740,17 +14934,13 @@
},
"verror": {
"version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
+ "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==",
"dev": true,
"requires": {
"assert-plus": "^1.0.0",
"core-util-is": "1.0.2",
"extsprintf": "^1.2.0"
- },
- "dependencies": {
- "extsprintf": {
- "version": "1.4.1",
- "dev": true
- }
}
},
"vfile": {
diff --git a/inst/templates/node/package.json b/inst/templates/node/package.json
index 3c85da03..9f2be03e 100644
--- a/inst/templates/node/package.json
+++ b/inst/templates/node/package.json
@@ -17,7 +17,7 @@
"@babel/preset-env": "^7.15.4",
"@babel/preset-react": "^7.22.3",
"babel-loader": "^8.2.2",
- "cypress": "^7.6.0",
+ "cypress": "^13.0.0",
"eslint": "^7.32.0",
"eslint-config-airbnb": "^19.0.4",
"eslint-import-resolver-webpack": "^0.13.1",
diff --git a/man/test_e2e.Rd b/man/test_e2e.Rd
index d9bed3d8..cdb8e8b4 100644
--- a/man/test_e2e.Rd
+++ b/man/test_e2e.Rd
@@ -18,6 +18,10 @@ defined in the \code{tests/cypress} directory.
Requires Node.js to be available on the system.
}
\details{
+Check out:
+\href{https://appsilon.github.io/rhino/articles/tutorial/write-end-to-end-tests-with-cypress.html}{Tutorial: Write end-to-end tests with Cypress}
+to learn how to write end-to-end tests for your Rhino app.
+
If you want to write end-to-end tests with \code{{shinytest2}}, see our
\href{https://appsilon.github.io/rhino/articles/how-to/use-shinytest2.html}{How-to: Use shinytest2}
guide.
diff --git a/tests/e2e/app-files/hello.spec.js b/tests/e2e/app-files/hello.cy.js
similarity index 100%
rename from tests/e2e/app-files/hello.spec.js
rename to tests/e2e/app-files/hello.cy.js
diff --git a/vignettes/how-to/migrate-app-to-rhino.Rmd b/vignettes/how-to/migrate-app-to-rhino.Rmd
index 118dece7..a1df237b 100644
--- a/vignettes/how-to/migrate-app-to-rhino.Rmd
+++ b/vignettes/how-to/migrate-app-to-rhino.Rmd
@@ -104,7 +104,7 @@ Having your application prepared, you can now run `rhino::init()`.
│ └── ...
├── tests
│ ├── cypress
-│ │ ├── integration
+│ │ ├── e2e
│ │ └── .gitignore
│ ├── testthat
│ │ └── test-main.R
diff --git a/vignettes/tutorial/create-your-first-rhino-app.Rmd b/vignettes/tutorial/create-your-first-rhino-app.Rmd
index 19d7a237..7650eb69 100644
--- a/vignettes/tutorial/create-your-first-rhino-app.Rmd
+++ b/vignettes/tutorial/create-your-first-rhino-app.Rmd
@@ -79,8 +79,8 @@ A result of both paths will be an initial Rhino application with the following s
│ └── main.R
├── tests
│ ├── cypress
-│ │ └── integration
-│ │ └── app.spec.js
+│ │ └── e2e
+│ │ └── app.cy.js
│ ├── testthat
│ │ └── test-main.R
│ └── cypress.json
diff --git a/vignettes/tutorial/use-react-in-rhino.Rmd b/vignettes/tutorial/use-react-in-rhino.Rmd
index 00b91aac..ee57c116 100644
--- a/vignettes/tutorial/use-react-in-rhino.Rmd
+++ b/vignettes/tutorial/use-react-in-rhino.Rmd
@@ -176,7 +176,7 @@ shiny::runApp()
# Testing the component
As a bonus, let's write a Cypress end-to-end test to check if our component works as expected.
-Edit the `tests/cypress/integration/app.spec.js` file as follows:
+Edit the `tests/cypress/e2e/app.cy.js` file as follows:
```js
describe('app', () => {
diff --git a/vignettes/tutorial/write-end-to-end-tests-with-cypress.Rmd b/vignettes/tutorial/write-end-to-end-tests-with-cypress.Rmd
index cec4e6af..c44e2135 100644
--- a/vignettes/tutorial/write-end-to-end-tests-with-cypress.Rmd
+++ b/vignettes/tutorial/write-end-to-end-tests-with-cypress.Rmd
@@ -146,7 +146,7 @@ There are two functionalities that we are going to test:
# How to run Cypress tests?
If you check the project structure, you will find `tests/cypress/` directory
-with an initial test in `tests/cypress/integration/app.spec.js` ready to use.
+with an initial test in `tests/cypress/e2e/app.cy.js` ready to use.
It contains a simple test that just starts the application.
If your app can start, it will pass, no matter if it crashes a few seconds later.
@@ -172,12 +172,12 @@ clicking the button with "Show message" label will show the message.
## Test file structure
-The first thing to do is to create a test file: `tests/cypress/integration/message.spec.js`.
+The first thing to do is to create a test file: `tests/cypress/e2e/message.cy.js`.
Inside, provide a structure and description for tests using `describe` and `it`:
```js
-// tests/cypress/integration/message.spec.js
+// tests/cypress/e2e/message.cy.js
describe("Show message", () => {
it("'Show message' button exists", () => {
@@ -198,7 +198,7 @@ Now, let's make sure that in the beginning, Cypress will open the application.
To achieve that, add `beforeEach` statement at the beginning:
```js
-// tests/cypress/integration/message.spec.js
+// tests/cypress/e2e/message.cy.js
describe("Show message", () => {
beforeEach(() => {
@@ -239,7 +239,7 @@ From this view, you can see that we can ask for example for a `button` (HTML tag
inside an element of class `message`. Let's pass this selector to Cypress `get` command:
```js
-// tests/cypress/integration/message.spec.js
+// tests/cypress/e2e/message.cy.js
describe("Show message", () => {
beforeEach(() => {
@@ -260,7 +260,7 @@ describe("Show message", () => {
The next step is to check if this button has a proper label:
```js
-// tests/cypress/integration/message.spec.js
+// tests/cypress/e2e/message.cy.js
describe("Show message", () => {
beforeEach(() => {
@@ -289,7 +289,7 @@ Cypress comes with a command called `click` (who would expect that?!).
Use it in the second test to click the button:
```js
-// tests/cypress/integration/message.spec.js
+// tests/cypress/e2e/message.cy.js
describe("Show message", () => {
beforeEach(() => {
@@ -321,7 +321,7 @@ and "message_text" is the id of our `textOutput`.
Ok, let's use it and check if the message element has a correct text inside:
```js
-// tests/cypress/integration/message.spec.js
+// tests/cypress/e2e/message.cy.js
describe("Show message", () => {
beforeEach(() => {
@@ -347,11 +347,11 @@ Run tests again and you should see that again, all passed:
# Test counting clicks functionality
As previously, we need to start with creating a file and providing the test structure.
-Create `tests/cypress/integration/clicks.spec.js` and fill it with the skeleton
+Create `tests/cypress/e2e/clicks.cy.js` and fill it with the skeleton
similar to the first test file:
```js
-// tests/cypress/integration/clicks.spec.js
+// tests/cypress/e2e/clicks.cy.js
describe("Counting clicks", () => {
beforeEach(() => {
@@ -374,7 +374,7 @@ First, we want to make sure the button exists. We will follow the example from
the message module:
```js
-// tests/cypress/integration/clicks.spec.js
+// tests/cypress/e2e/clicks.cy.js
describe("Counting clicks", () => {
beforeEach(() => {
@@ -406,7 +406,7 @@ we will use an [alias](https://docs.cypress.io/guides/core-concepts/variables-an
To do that, we will utilize another Cypress command: `as`:
```js
-// tests/cypress/integration/clicks.spec.js
+// tests/cypress/e2e/clicks.cy.js
describe("Counting clicks", () => {
beforeEach(() => {
@@ -426,7 +426,7 @@ describe("Counting clicks", () => {
Now, we can access the button using `@button`. So let's click it 5 times:
```js
-// tests/cypress/integration/clicks.spec.js
+// tests/cypress/e2e/clicks.cy.js
describe("Counting clicks", () => {
beforeEach(() => {
@@ -451,7 +451,7 @@ Finally, we need to check if the counter has the correct value
(you already know how to look for its id to pass to `get` command):
```js
-// tests/cypress/integration/clicks.spec.js
+// tests/cypress/e2e/clicks.cy.js
describe("Counting clicks", () => {
beforeEach(() => {