docbrown/package.json
Nick Taylor a7da74b993
Cleaning Test Runs for End to End (E2E) Tests (#12143)
* Added custom seed task

* Added a test for the initial login for the intial admin of a forem instance.

* Renamed admin login seed data file.

* Pulled functions out of main Cypress plugin file and import them now.

* Added some comments.

* Added a comment about Cypress tasks requiring a return value to be considered successful.

* Moved admin_login_setup seed file to spec folder.

* Made change requests in regards to rake task.

* Fixed reference to SiteConfig

* Created the seeder class to be shared for all seed files.

* Added a missing param to function comment.

* Fixed seeder require in e2e test seed file.

* Fixed seeder require in seeds.rb. Why is Rails.root required?

* Added an environment guard for not being production in the e2e seed task.

* Made seeder require relative.

* Trying something for the Elastic Search issue in CI.

* Revert "Trying something for the Elastic Search issue in CI."

This reverts commit 7cb2a963c8ac1f9242c612a1b9fe8ff814605df6.

* Search indices are now removed via bundle exec rake search:destroy

* Now rake search:destroy is used in the Cypress task for resetting data as well.

* Moved Seeder class to app/lib

* Added cypress-rails

* Got two flows working with db rollbacks.

* Trimmed down the e2e dataset for now.

* Added a custom Cypress command to encompass test setup.

* removed unused e2e rake task

* added some user login/password e2e tests.

* Added a note about Cypress not cleaning cookies, so we do for the moment.

* Removed code no longer required.

* Removed comment in test that is no longer pertinent to the test suite.

* Removed data cleaning plugins as cypress rails gem handles it now.

* Added @citizen428's recommendation got raising an error if trying to seed production.

* Temporarily have paralleziation of e2e tests disabled to figure out cypres-rails/knapsack pro integration.

* Doh! Forgot a semi-colon in the Travis config.

* Added a comment about not integrating cypress-rails/knapsack pro right now.

* Removed knapsack pro npm package for now as we aren't using it.

* Reworded comment about cypress-rails/kanpsackpro.

* Removed seeding for tags to follow for onboarding in e2e seed data.

* Made pree2e script e2e:setup so it only runs explicitly when needed.

* Renamed bin/e2e to bin/e2e-ci.

* Created a new script for local e2e testing.

* Removed RAILS_ENV as it's in the e2e-ci script already.

* Fixed an auto corrected command.

* Fixed wording in e2e script prompt.

* Removed bundle exec rake data_updates:run that I had added. Doesn't appear to be necessary.

* Added missing new lines.

* Renamed e2e seed file and only use that one now. THere are no others.

* Some script cleanup.

* Added a check for the E2E environment so as to not pollute system tests.

* Now e2e test server cleanup occurs when the server shuts down.

* Put puts as this is really just for testing.

* Put environment variable in the proper place for runnning bundle exec.

* Added a check to only run for E2E tests.

* Some bash script formatting.

* Removed copy paste irrelevant comments.

* Updated e2e server shutdown message.

* Now a data-testid attribute is used for finding the user account errors panel.

* Made test selectors ignore casing of text.

* Removed prod paranoia check in e2e seed file.

* Refactored spec to use new cy.loginUser(user) command.

* Update app/lib/seeder.rb

Co-authored-by: Michael Kohl <citizen428@dev.to>

* Fixed flakiness that @aitchiss was experiencing.

* Rubocop fix.

* Due to a Cypress issue, fixing cookie clearing with another tweak.

* Bumped the wait time to 500ms if cookies don't clear.

* Added a 'bundle check' to the bin/e2e script as suggested by @katiedavis.

* Removed some white space

Co-authored-by: Michael Kohl <citizen428@dev.to>
2021-01-29 13:34:01 +01:00

189 lines
6 KiB
JSON

{
"name": "dev.to",
"version": "1.0.0",
"description": "Where programmers share ideas and help each other grow",
"engines": {
"yarn": ">=1.21.x",
"node": "14.14.x"
},
"main": "index.js",
"directories": {
"doc": "docs",
"lib": "lib",
"test": "test"
},
"scripts": {
"api-docs:lint": "spectral lint -F hint -v docs/api_v0.yml && lint-openapi -e docs/api_v0.yml",
"api-docs:serve": "redoc-cli serve docs/api_v0.yml --options.pathInMiddlePanel --options.jsonSampleExpandLevel=all --options.menuToggle -t docs/api_template.hbs --watch",
"storybook-prerequisites": "sass -q app/assets/stylesheets/themes:app/javascript/storybook-static/themes && bin/generate-css-utility-classes-docs.js",
"prebuild-storybook": "yarn run storybook-prerequisites",
"build-storybook": "build-storybook -c app/javascript/.storybook -s app/assets -o app/javascript/storybook-static --quiet",
"prestorybook": "yarn run storybook-prerequisites",
"storybook": "start-storybook -p 6006 -c app/javascript/.storybook -s app/assets,app/javascript/storybook-static",
"lint:frontend": "eslint app/assets/javascripts/**/*.js app/javascript/**/*.jsx app/javascript/**/*.js",
"pretest": "yarn run lint:frontend",
"test": "jest app/javascript/ bin/ --coverage",
"test:watch": "jest app/javascript/ bin/ --watch",
"postcss": "postcss public/assets/*.css -d public/assets 2> postcss_error.log",
"e2e": "bin/e2e"
},
"husky": {
"hooks": {
"pre-commit": "lint-staged"
}
},
"lint-staged": {
"app/assets/config/manifest.js": [
"prettier --write",
"eslint --fix -c app/assets/javascripts/.eslintrc.js"
],
"docs/api_v0.yml": [
"spectral lint -F hint",
"lint-openapi -e"
],
"*.{js,jsx}": [
"prettier --write",
"eslint --fix",
"jest --findRelatedTests"
],
"{app,spec,config,lib}/**/*.rb": [
"bundle exec rubocop --require rubocop-rspec --auto-correct"
],
"app/views/**/*.jbuilder": [
"bundle exec rubocop --require rubocop-rspec --auto-correct"
],
"Gemfile": [
"bundle exec rubocop --require rubocop-rspec --auto-correct"
],
"*.rake": [
"bundle exec rubocop --require rubocop-rspec --auto-correct"
],
"app/**/*.html.erb": [
"bundle exec erblint --autocorrect"
],
"*.json": [
"prettier --write"
],
"*.scss": [
"prettier --write"
],
"*.md": [
"prettier --write --prose-wrap always"
],
"*.svg": [
"svgo --disable=removeViewBox --pretty"
]
},
"repository": {
"type": "git",
"url": "git+https://github.com/thepracticaldev/dev.to.git"
},
"author": "",
"license": "AGPL-3.0-or-later",
"bugs": {
"url": "https://github.com/thepracticaldev/dev.to/issues"
},
"homepage": "https://github.com/thepracticaldev/dev.to#readme",
"devDependencies": {
"@stoplight/spectral": "5.8.0",
"@storybook/addon-a11y": "^6.1.15",
"@storybook/addon-actions": "^6.1.15",
"@storybook/addon-docs": "^6.1.15",
"@storybook/addon-knobs": "^6.1.15",
"@storybook/addon-links": "^6.1.15",
"@storybook/addon-notes": "^5.3.21",
"@storybook/addon-storyshots": "^6.1.8",
"@storybook/addon-storysource": "^6.1.15",
"@storybook/addons": "^6.1.14",
"@storybook/preact": "^6.1.15",
"@testing-library/cypress": "^7.0.3",
"@testing-library/dom": "^7.29.4",
"@testing-library/jest-dom": "^5.11.9",
"@testing-library/preact": "^2.0.1",
"@testing-library/preact-hooks": "^1.1.0",
"@testing-library/user-event": "^12.6.0",
"babel-core": "^7.0.0-bridge.0",
"babel-eslint": "^10.1.0",
"babel-jest": "^26.6.3",
"babel-loader": "^8.2.2",
"css-loader": "^5.0.1",
"cssom": "^0.4.4",
"cypress": "^6.3.0",
"cypress-file-upload": "^5.0.2",
"eslint": "^7.18.0",
"eslint-config-preact": "^1.1.3",
"eslint-config-prettier": "^7.2.0",
"eslint-import-resolver-webpack": "^0.13.0",
"eslint-plugin-babel": "^5.3.1",
"eslint-plugin-cypress": "^2.11.2",
"eslint-plugin-ignore-erb": "^0.1.1",
"eslint-plugin-import": "^2.22.1",
"eslint-plugin-jsx-a11y": "^6.3.1",
"eslint-plugin-react": "^7.22.0",
"faker": "^5.2.0",
"gitdocs": "^2.0.0",
"husky": "^4.3.8",
"ibm-openapi-validator": "0.34.1",
"jest": "26.6.3",
"jest-axe": "^4.1.0",
"jest-fetch-mock": "^3.0.3",
"jest-watch-typeahead": "^0.6.1",
"jsdom": "^16.4.0",
"lint-staged": "^10.5.3",
"markdown-loader": "^6.0.0",
"prettier": "^2.2.1",
"redoc-cli": "0.10.2",
"sass": "1.32.5",
"sass-loader": "^10.1.1",
"start-server-and-test": "^1.11.7",
"style-loader": "^2.0.0",
"svgo": "1.3.2",
"webpack-bundle-analyzer": "^4.4.0",
"webpack-dev-server": "^3.11.2"
},
"dependencies": {
"@babel/core": "^7.12.10",
"@babel/plugin-proposal-class-properties": "^7.10.4",
"@babel/plugin-syntax-dynamic-import": "^7.8.3",
"@babel/plugin-transform-react-jsx": "^7.12.12",
"@babel/preset-env": "^7.12.11",
"@github/clipboard-copy-element": "^1.1.2",
"@honeybadger-io/webpack": "^1.2.0",
"@rails/webpacker": "5.2.1",
"ahoy.js": "^0.3.8",
"autoprefixer": "^9.8.6",
"babel-preset-preact": "^2.0.0",
"canvas": "^2.6.1",
"chart.js": "^2.9.4",
"clipboard-polyfill": "^3.0.2",
"core-js": "3",
"file-loader": "^6.2.0",
"focus-trap": "^6.3.0",
"focus-visible": "^5.2.0",
"he": "^1.2.0",
"honeybadger-js": "2.3.0",
"intersection-observer": "^0.12.0",
"linkstate": "^2.0.1",
"lodash.debounce": "4.0.8",
"postcss-cli": "^7.1.1",
"postcss-cssnext": "^3.1.0",
"postcss-smart-import": "^0.7.6",
"postscribe": "^2.0.8",
"preact": "^10.5.12",
"preact-textarea-autosize": "^4.0.7",
"prop-types": "^15.7.2",
"pusher-js": "^7.0.3",
"rails-erb-loader": "^5.5.2",
"stimulus": "^2.0.0",
"twilio-video": "^2.11.0",
"web-share-wrapper": "^0.2.1"
},
"resolutions": {
"gitdocs/markdown-to-jsx": "^6.11.4"
},
"jest": {
"setupFiles": [
"jest-localstorage-mock"
]
}
}