* 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>
189 lines
6 KiB
JSON
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"
|
|
]
|
|
}
|
|
}
|