* create new pack, handle user follow buttons, use pack on article page, remove initializeUserFollowButts
* init all follow button types, add pack to tag index and podcast episode pages
* add pack to all relevant pages, listen for newly inserted follow buttons
* change to searchParams to remove follow button initializer calls
* fix bug with tag page, add pack to notifications page
* fix issue with follow back inner text
* update cypress specs
* run the followbuttons code on sponsors page
* remove extra foreach
* add test for follow from article sidebar
* add test for follow and unfollow tag
* add test for the tag index page
* add spec for organisation profile follow
* add tests for follow buttons in search results
* add tests for notification follows
* commit missed file - woops
* show login modal if user is logged out when they click
* add cypress tests for logged out state
* change tag button initialization
* remove data-button-initialized
* init follow buttons from base pack
* handle the case where multiple follow buttons exist on a page for the same user
* account for instantclick and userdata not being defined, lower coverage for jest
* use getInstantClick
* fix issue with set initialisation
* only listen for mutations in areas we know follow buttons may be added dynamically
* small refactors
* add login and visit helper, add sign out command
* refactors to the admin tests
* update article tests
* update dashboard flows
* update feed nav and listings flows
* update logout test
* update mod and profile flows
* update publishing flows
* update reading list, search and tag index flows
* wait for sign out, refactor
* break chat message tests into more manageable chunks
* Rename SiteConfig
* More renaming
* Update spec
* Update mandatory settings mapping
* More renaming
* e2e test fixes
* You have a rename, and you have a rename
* Spec fix
* More changes
* Temporarily disable specs
* After-merge update
* Undo rename for migration
* undo rename of DUS
* Fix DUS
* Fix merge problem
* Remove redundant DUS
* Fix specs
* Remove unused code
* Change wrong class name
* More cleanup
* Re-add missing values to constant
* Fix constant
* Fix spec
* Remove obsolete fields
* Add accidentally removed field
* Update spec
* Move methods from Settings::General to ForemInstance
* Remove unneeded model
* Change mentions of 'site config'
* Navigate back to dashboard instead of article.path
* Set mainImage to null to remove image properly
* Use dashboard_path over string path
Co-authored-by: Michael Kohl <me@citizen428.net>
* Handle apostrophe edge cases
* Allow main image to be set
* Add new test for removing article cover img
* Use potentially less flaky find
* Use findByAltText instead of get
Co-authored-by: Michael Kohl <me@citizen428.net>
* write tests for invite-only mode and auth-providers
* text edits
* modify specs in light of new e2e database setup
* Still working things out
* Added the admin user name to the e2e fixture data.
* Added testid for config sections.
* Fixed up test to use cypress-testing-library APIs.
* Fixed unsetting invite only mode, still need to reset it at end of test.
* Small fix for local e2e development.
* Complete all tests; generalize updateAdminConfig cypress command
* correct spec
* Complete implementation
* Address code review comments
* address code review comments #2
Co-authored-by: Nick Taylor <nick@dev.to>
* 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>
* Added test run artifacts to git ignore.
* Added Cypress run to Travis.
* Added the start-server-and-test package.
* Added e2e ci scripts.
* Split up commands.
* Testing e2e after rspecs on same build node.
* Move Cypress back to node 0 for Knapsack.
* Added folders for build artifacts for failed E2E tests.
* Simplified e2e for CI
* Using knapsack-pro-cypress now.
* Added data-testid to sign up form for tests.
* Added forem secret for CI
* Updated initial admin fixture.
* Reworked test to be a signup test. wip.
* Added cypress file upload package.
* added fixture for admin profile image.
* Updated forem secret for tests.
* Added Cypress file upload to Cypress commands.
* Changed test to initial sign up for the first admin user.
* Fixed test to ensure there are no signup errors.
* Added some logging to see what's up.
* Added some comments to the test.
* Set Chrome web security to false to prevent CORS errors.
Co-authored-by: rhymes <rhymes@hey.com>
* Set baseUrl for Cypress tests.
* Fixed login form for tests.
* Added fixture data for initial admin credentials.
* First e2e test.
* Fixed a typo in a comment.
* Using an input of type submit like the login previously had was fine.
* Added a check to ensure user is redirected to the home page.
* Forgot to commit adding @testing-library/cypress
* Renamed and move login flow under loginFlows in integrations.
* Added testing library to support files so it does not need to be imported into every test explicitly by the test writer.
* Added some more Cypress related files that will be required for testing going forward.
* Took onboarding into account when checking the URL post login.