Commit graph

2753 commits

Author SHA1 Message Date
Suzanne Aitchison
7efe9159d7
Tests: Initialize follow buttons in article liquid tags (#14354)
* initialize follow buttons in articles

* add e2e tests

* fix typo in test

* add test for follow back case

* remove attribute we don't need
2021-07-27 16:28:05 +01:00
Michael Kohl
30552a5ed8
Update DiscussionLocksController (#14351) 2021-07-27 14:42:14 +02:00
Suzanne Aitchison
75b6c8ed96
Use a single listener for all follow buttons on a page (#14246)
* 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
2021-07-27 10:45:50 +01:00
rhymes
0d58de830b
API: Add reading_time_minutes to /api/articles/me (#14318) 2021-07-26 17:47:50 +02:00
Michael Kohl
7a8f854d2c
Rename User.dev_account to User.staff_account (#14321) 2021-07-26 10:46:26 -04:00
Michael Kohl
813d83a854
Fix constant lookup in Admin::WelcomeController (#14320) 2021-07-26 08:12:47 -06:00
rhymes
e081551dc0
Revert "Clear recent articles cache on updating tags (#14298)" (#14330)
This reverts commit 7159199402.
2021-07-26 11:12:33 +02:00
Khadija Sidhpuri
7159199402
Clear recent articles cache on updating tags (#14298)
* add: article cache on update tag

* minor styling fix

* add: published scope to fetch articles

* update: tag_spec:125 to not fetch articles
2021-07-26 10:24:24 +02:00
Arit Amana
e589b11c77
Static Sections for Site Navigation - Pt2 (#14292)
* schema file undelete description

* update with main

* update with origin

* add sections in Admin

* Add "Section" radio btns to New-Link form

* Ensure links created in correct section

* Ensure links created in correct section pt2

* fix styling in admin

* complete section split on frontend

* start on specs

* complete specs

* remove unnecessary Cypress test file

* address all a11y comments in PR review

* fix broken specs due to a11y changes
2021-07-23 17:53:55 -04:00
Alex
7a48708156
API: Add instance endpoint and spec (#14301)
* Create /api/forem_directories endpoint and spec

* PR feedback

* Update regex in spec
2021-07-23 12:10:08 -04:00
Daniel Uber
591577e6b8
[hotfix] website_url update script should handle parse errors (#14306)
* Add additional test cases to the DUS

And then handle them.

* rubocop changes

Keep let blocks together
prefer blank? to ! + present?

* Test copied script as well

Since the file was fixed, then copied - we want to test the copy that
will actually run (these _should_ be idempotent and running both back
to back will cause no harm).
2021-07-22 14:16:43 -05:00
Daniel Uber
6f84f4afe8
Validate profile field "website url" is in fact a url (don't generate local path links). (#14302)
* Validate website_url profile field is a url

related to issue #14300

May need a data update script to (fixup? remove?) invalid profiles
since not being able to save existing profiles will cause problems.

* Check that URI is a valid url

Require the scheme to be one of https or http, not something like
mailto:// or telnet:// (nobody would do that, but don't try and link
to it if they did).

* Rubocop fixup for validation rule

URI::regexp is obsolete and should not be used. Instead, use URI::DEFAULT_PARSER.make_regexp

Prefer %w[] literals for arrays of words

Prefer the new style validations `validates :column, format: value` to validates_format_of

* Permit empty website_url fields

The previous validation was rejecting nil, which was the default. This
caused a lot of user factory calls to fail (since users didn't need
website urls in the profiles during testing unless the test was about
the website url link).

* Use :url validation as suggested

* Update validation error message

The validate_url gem gives a more complete error message to the
user. Update the spec to expect this.

* Use url_field rather than text_field in profile form

https://apidock.com/rails/v6.1.3.1/ActionView/Helpers/FormHelper/url_field

* Add data update to either fixup or clear invalid website urls

Checking blazer there are about 2600 profiles with "invalid" website
urls, typically a hostname, sometimes a hostname + path component,
which should be fixed up.

Naively add https:// to the front of the url, check that a valid
scheme and host are present on the resulting url, and save.

If an invalid url is generated (specifically, if host or scheme are
nil), just set the website url (with the invalid link) to an empty
string.

It's possible we'd want to notify users affected by this, that was not
included in this pass.

* Skip validations for intentionally invalid test cases
2021-07-22 12:02:29 -05:00
Michael Kohl
de043b3d6d
Fix brand color validation (#14303) 2021-07-22 09:35:20 +01:00
Michael Kohl
dc27f597fb
Remove CustomProfileField (#14286)
* Remove custom profile fields

* Update profile model

* Fix specs, more cleanup

* Remove no longer valid validation

* Update spec

* Update search serializer spec

* Update migration
2021-07-22 10:05:39 +07:00
Fernando Valverde
16ddcb74dc
Avoid showing social login options in ForemWebView (#14260)
* Minimal diff commit

* Add helper specs for display_social_login?

* Fixing some specs

* Fixing specs

* Add system specs for flow A vs flow B

* Add aria-live polite

* revert unnecessary change to spec

* Update spec/system/authentication/conditional_registration_spec.rb

Co-authored-by: rhymes <github@rhymes.dev>

* Tweaks to fix specs

* Apply review feedback

* Apply suggestions from code review

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

* Extract helper function + refactor Regexp from display_social_login?

* Small tweak to condition

Co-authored-by: rhymes <github@rhymes.dev>
Co-authored-by: Michael Kohl <citizen428@dev.to>
2021-07-21 09:59:12 -06:00
rhymes
a118b9095a
Add JSON representation of Profile Preview Card info (#14296)
* Add tests and Railsify a few things

* Adds JSON representation of ProfilePreviewCardsController

* Load profile and setting eagerly

* Add profile preview card color
2021-07-21 16:23:54 +01:00
Mac Siri
b06b446176
Allow setting nil value in Settings::Upsert (#14228) 2021-07-20 10:57:09 -04:00
Khadija Sidhpuri
c4185c1339
Fix shorten_urls to not remove formatting and image tags (#14262)
* fix: shorten_urls to only shorten URLs

* revert: changes to schema.rb

* modify: test to aggregate failures

Co-authored-by: rhymes <github@rhymes.dev>

* fix: shorten_urls to only strip urls

* improve: regex and variable assignments

* remove: unnecessary var assignment

Co-authored-by: rhymes <github@rhymes.dev>
2021-07-20 10:10:34 -04:00
Khadija Sidhpuri
2ad463f078
Allow multiple users to fetch all articles from the same RSS feed (#14160)
* fix: artiles from the same feed can be fetched from multiple accounts

* undo unintentional changes to schema.rb

* modify: article_spec and import_spec tests

* fix: failing test

* modify: import_spec:213 for user.setting

* fix: failing test import_spec:213

* add: unique index on articles canonical_url where published

* revert: schema.rb

* modify: unique url error message to include admin email

* modify: custom error message

* modify: .update to .update! (bang)
2021-07-19 15:15:32 +02:00
Michael Kohl
84a85fe1a4
Remove color_field input type from profiles (#14239)
* Move brand color validation to Users::Setting

* Fix specs

* Remove color_field as ProfileField input type
2021-07-19 18:42:36 +07:00
Michael Kohl
9794305412
Remove unused profile fields (#14206)
* Remove unused profile fields

* Clean up CSV

* Account for user settings in Profiles::Update

* Move brand color validation to Users::Setting

* Fix specs
2021-07-16 09:45:12 -04:00
Suzanne Aitchison
dfc08bf5b4
Revert "Fix shorten_urls to not strip out text formatting in comments (#14240)" (#14258)
This reverts commit 315f1ec4cf.
2021-07-16 14:37:26 +01:00
Mac Siri
48e768e75f
Escape organization name in LinkTag's spec (#14249) 2021-07-15 14:34:14 -04:00
Khadija Sidhpuri
315f1ec4cf
Fix shorten_urls to not strip out text formatting in comments (#14240)
* fix: shorten_urls to only shorten URLs

* revert: changes to schema.rb

* modify: test to aggregate failures

Co-authored-by: rhymes <github@rhymes.dev>

Co-authored-by: rhymes <github@rhymes.dev>
2021-07-15 18:59:29 +02:00
Jamie Gaskins
355881f744
Don't try to subscribe users without emails (#14244) 2021-07-15 10:34:23 -04:00
Arit Amana
3adfe7ace3
Static Sections for Site Navigation - Pt1 (#14213)
* schema file undelete description

* update with main

* update with origin

* Add "section" enum to navlink model

* create migration for section column

* create migration and data-update script

* update related rake tasks

* add scopes for default_links and other_links

* update E2E seeds

* ran migration; correct enum reference

* fix requests and model specs

* write DUS spec; fix factory and DUS

* yarn install

* address PR review comments

* fix migration; add null: false

* Remove yarn.lock from commit

* remove yarn.lock changes from commit

* sync yarn.lock with main

* newline
2021-07-14 11:01:56 -04:00
Nick Taylor
96f54d02cd
[15 min fix] Fixed an issue with the moderation button not appearing on some posts (#14184)
* Fixed an issue with the moderation button not appearing on some posts.

* Added some E2E tests to ensure moderation button is on posts for trusted users.

* Added some more tests.

* Added a test to ensure moderation button does not appear when logged out.
2021-07-13 10:31:00 +02:00
Michael Kohl
33da6aa1e7
Fix data update script for work field migration (#14207)
* Call .dup on employment_title

* Update app/workers/migrate_data_to_work_field_worker.rb

Co-authored-by: Jamie Gaskins <jamie@forem.com>

Co-authored-by: Jamie Gaskins <jamie@forem.com>
2021-07-13 13:20:21 +07:00
Julianna Tetreault
e1e18aa0aa
[15-Minute Fix] Ensure "Locked Screen" Checkbox Conditionally Renders (#14161)
* Uses Settings::UserExperience.public to conditionally render btn

* Updates landing page-related specs to account for private forem

* Uses Settings::UserExperience in place of ForemInstance in admin_creates_new_page_spec.rb

* Reverts Settings::UserExperience.public? changes throughout codebase
  - Removes any changes to ForemInstance.private?
  - Adds a new helper method, self.invitation_only?
  - Updates self.private? logic

* Updates landing page specs and reverts unnecessary changes
  - Reverts any changes that removed the check for
ForemInstance.private?
  - Updates landingPage.spec.js to use findByRole rather
than findByText

* Reverts a change to admin_manages_pages_spec.rb

* Updates landingPage.spec.js per PR review comment

* Updates #private_forem_or_no_enabled_auth_options and spec

* Uses .invite_only? in _providers_registration_form.html.erb

* Adjusts authenticationSection.spec.js to test that FB is enabled

* Updates necessary specs to check .invitation_only?

* Consistently uses invite_only_mode_or_no_enabled_auth_options
  - Updates all necessary places within the codebase to use
reverted method name, invite_only_mode_or_no_enabled_auth_providers
  - Updates #self.enabled to check ForemInstance.invitation_only?
rather than ForemInstance.private?
  - Reverts change to Facebook assertion within authenticationSection
e2e test

* Removes superfluous .to from authenticationSection.spec.js
2021-07-12 14:14:43 -06:00
Daniel Uber
3fb69eca20
Make smtp "domain" setting explicit (#14097)
When running tests locally (with an older version of the .env_sample
file as .env) I was seeing nil, rather than the empty string, when
running this spec. I determined the issue is that env vars
provided (but blank) are represented as empty strings, while env vars
not provided are returned as nil, and to avoid this dependence on the
environment file (at test time) it's better to provide the data you're
expecting (as we did for the other keys in the settings hash).
2021-07-12 09:22:37 -05:00
Molly Struve
6f25820a6b
Add spec to ensure we filter by proper user IDs for sending push notifications (#14187) 2021-07-12 08:51:00 -05:00
Jamie Gaskins
b2f11547ae
Boost priority of queue stats worker (#14173)
* Boost priority of queue stats worker

We were missing stats for hours at a time this week because this worker
was blocked behind other jobs. We *especially* need stats when Sidekiq
is saturated, so this commit puts these stats at the highest priority.

The tradeoff should be minimal. These jobs take 6-30ms once every 10
minutes.

* Change queue in worker spec, as well
2021-07-09 09:28:43 -05:00
Michael Kohl
41a36dd7d1
Add 'Work' profile field (#14106)
* Add 'Work' profile field

* Add DUS for migrating work data

* Make placeholder text more generic

* Update DUS to use worker

* Update worker

* Update spec/lib/data_update_scripts/migrate_data_to_work_field_spec.rb

Co-authored-by: Jamie Gaskins <jamie@forem.com>

* Update spec/lib/data_update_scripts/migrate_data_to_work_field_spec.rb

Co-authored-by: Jamie Gaskins <jamie@forem.com>

* Update spec/lib/data_update_scripts/migrate_data_to_work_field_spec.rb

Co-authored-by: Jamie Gaskins <jamie@forem.com>

* Update spec/lib/data_update_scripts/migrate_data_to_work_field_spec.rb

Co-authored-by: Jamie Gaskins <jamie@forem.com>

* Update spec/lib/data_update_scripts/migrate_data_to_work_field_spec.rb

Co-authored-by: Jamie Gaskins <jamie@forem.com>

* PR feedback

* Use before instead of before(:all)

Co-authored-by: Jamie Gaskins <jamie@forem.com>
2021-07-09 09:24:08 +07:00
Mac Siri
0a3a45a990
Add SocketError to GetMediaUrl's exception rescue (#14177) 2021-07-08 16:31:15 -04:00
Molly Struve
e87dead7ad
Use new UserSetting and UserNotificationSettings and Ignore Related User Table Fields (#14121)
* schema file undelete description

* feat: v1 of the script

* Flesh out remaining enums under their categories

* complete UsersSettings data update script

* complete DUS for relevant attributes in users and profiles tables

* complete DUS for users_notification_settings

* alphabetize user_settings sql file

* safeguard against null values for "null: false" settings

* Set up actual UsersSettings DUS and specs files

* fix broken DUS script

* complete specs for UsersSetting DUS

* Address QA of specs

* complete specs for users_notification_settings DUS

* fix the typos (thanks Julianna!)

* begin implementation

* still building

* add missing attribute "email_membership_newsletter"

* complete sync code (except race condition for user profile)

* complete implementation, remains tests

* Address PR review and fix Travis fails

* remove superfluous Profile.new

* fix travis fails

* feat: update the users_notification_setting attributes from the user model

* feat: use the config fonts enums to display the fonts

* feat: loop through the keys

* fix profile = nil blowing up; add specs for notification_setting model

* remove unneeded spec

* remove feed validation until after sync code removed; fixes feed_import spec failures

* remove spec associated with feed_url validation in user_setting model

* fix failing spec 😅

* add TODO

* feat: set the user settings in the user controller  and use it in the customization form

* feat: move some update logic to the users settings controller thats being used from customization

* feat: show the updated values form the users_settingd and not the user instance

* Generalize redirect back to current tab

* still trying to reflect changed theme upon refresh

* customizations take effect on refresh

* remove 'with_feed' scope from user model

Co-authored-by: Jamie Gaskins <jamie@forem.com>

* start with takeover for fields previously in profiles table

* Takeover code for `publishing_from_rss` section in Settings (#13914)

* implement takeover code part 1

* implement takeover code

* fix feed fetch

* need rhymes help

* complete implementation; specs pending

* fix STUPID omission that caused so many headaches 😫

* implement profile fields pointing to users_settings 🎉

* run migrations

* implement inbox type & guidelines takeover code; specs pending (#13911)

* Point changes in notification settings to `users_notification_settings` table (#13910)

* implement takeover code; remains specs

* address PR feedback; remove related sync code

* address PR review feedback

* need help with routing and specs

* address pr review

* addressing pr review

* Treat implementation edge cases and omissions 😅

* fix uncommented comment

* fixing implementation cases

* address more PR review feedback

* fixing notifications use-cases

* refactor settings controller

* more pr review changes

* solving bugs

* fix broken onboarding

* handle eperience_level calls

* more fixes

* remove unneeded mappings

* add To-dos for quety updates

* remove done TODO

* purge done TODOs

* update notification_settings-related queries

* start fixing specs

* fixing specs

* fix notification and lrg_forem specs

* fixing broken specs

* still fixing

* fix line dif and remove reloads from user.rb

* run specs

* silence bullet and other fixes

* remove setting migration scripts and specs, fix more settings for specs

* handle missing user for article builder and fix notification specs

* fix some final controller specs and re-add incorrectly removed specs

* remove deprecated data update scripts and related workers, put travis back

* refactor admin tags mods controller, write/move specs for users notifications settings controller

* schema cleanup and other small refactors for consistency

* set field we can invalidate in spec via active record instead of at the db level

* remove I think an uneccessary hook call from subscribe_to_mailchimp_newsletter

* use bnefore_create to setup settings, please dont blow up the test suite

* mailchimp bot fix

* remove decorator in favor of single model method

Co-authored-by: Arit Amana <msarit@gmail.com>
Co-authored-by: Ridhwana <ridhwana.khan16@gmail.com>
Co-authored-by: Arit Amana <32520970+msarit@users.noreply.github.com>
Co-authored-by: Jamie Gaskins <jamie@forem.com>
2021-07-08 09:31:34 -05:00
Andy Zhao
3e425344ef
[15-min-fix] Add org id to admin listings form (#14162)
* Add organization ID to admin listings form

* Add local: true to form heh...
2021-07-08 09:23:10 -04:00
Michael Kohl
83dc9408b6
Drop profile fields for static attributes (#14109)
* Drop profile fields for static attributes

* Update profile page with static field form

* Fix specs

* Update Cypress test
2021-07-01 14:30:40 -04:00
dependabot[bot]
816855ce3b
Bump rubocop from 1.17.0 to 1.18.0 (#14107)
* Bump rubocop from 1.17.0 to 1.18.0

Bumps [rubocop](https://github.com/rubocop/rubocop) from 1.17.0 to 1.18.0.
- [Release notes](https://github.com/rubocop/rubocop/releases)
- [Changelog](https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rubocop/rubocop/compare/v1.17.0...v1.18.0)

---
updated-dependencies:
- dependency-name: rubocop
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* yarn install

* Fix violations

* Restore the default aligned setting

* Trigger Travis CI

* Escape HTML

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: rhymes <github@rhymes.dev>
2021-07-01 13:51:49 +02:00
Suzanne Aitchison
d21a5d8ed4
Unfinished network requests cause problems with Cypress test setup (#14102)
* 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
2021-06-30 16:03:05 +01:00
Michael Kohl
aa3a9f5314
[15-minute fix] Disable 'Locked Screen' prompt for public Forems (#14029)
* Disable 'Locked Screen' prompt for public Forems

* Fix spec

* Ensure Forem instance is private in Cypress tests
2021-06-30 10:09:38 +07:00
Mac Siri
ffe31cd5aa
Change default value for editor version (#14063)
* Create migration

* Remove explicit "v2" usages

* Fix broken spec

* Update spec/system/user_uses_the_editor_spec.rb

Co-authored-by: Jamie Gaskins <jgaskins@hey.com>

Co-authored-by: Jamie Gaskins <jgaskins@hey.com>
2021-06-28 14:08:14 -04:00
Daniel Uber
d585ae2bf8
Prevent occasional matching on random name by specifying one (#14087)
We could mistakenly be picking up matches on user "name" rather than
user username due to faker giving a name like "Gale" or "Haley" or
"Annalee" which match the search term "ale".

Give an explicitly non-matching pattern for the name string to prevent
this.

Sampling from Faker::Name.name and filtering for case insensitive
matching against the search term shows slightly higher than 1% of
results will match this "ale" triple. Low enough to go unnoticed for a
long time.
2021-06-28 09:48:27 -05:00
Suzanne Aitchison
845a5fade5
Profile Preview Cards (RFC#222) - author name in comments (#14056)
* show dropdowns on pre-existing comments

* show preview on comments, v rough version of showing preview on recently added comments

* tidy up error, add some comments

* show the ama icon when appropriate

* add to comment on article cypress spec

* add test for preview card on article comment

* tidy up

* small refactors

* wait for button init in cypress test

* add test for article author byline on organization post

* Trigger CI builds

* Trigger CI builds
2021-06-25 10:05:37 +01:00
Fernando Valverde
f34b2203d3
Make Consumer Apps dictate aasa results (#14015)
* Makes Consumer Apps dictate aasa results

* progress with ConsumerApp query

* Adds Team ID migration + Stimulus consumer_app_controller.js

* Adds cypress tests

* Adds Backfill data_update_script + more specs & tweaks

* Remove file added by mistake

* Comment typo

* Small tweaks + improved specs

* Update lib/data_update_scripts/20210622145212_backfill_forem_consumer_app_team_id.rb

Co-authored-by: Jamie Gaskins <jamie@forem.com>

* Update spec/lib/data_update_scripts/backfill_forem_consumer_app_team_id_spec.rb

Co-authored-by: rhymes <github@rhymes.dev>

* Make use of create! and log errors to ForemStatsClient

* Fix specs

* Add mock_rpush call as suggested in review

* Add Review suggestions

* Fix tests

* Remove redundant assert in spec

Co-authored-by: Jamie Gaskins <jamie@forem.com>
Co-authored-by: rhymes <github@rhymes.dev>
2021-06-24 08:36:11 -06:00
Mac Siri
a8c75fb0e8
Re-add dynamic delivery_method for ApplicationMailer (#13994) 2021-06-23 15:17:27 -04:00
Andy Zhao
0eaea33710
Replace admin guide links (#13967)
* Replace admin guide links

* Add missing /docs/

* Add proper links
2021-06-23 15:01:01 -04:00
Julianna Tetreault
4d0b9c8ebf
Adds local: true to admin/tags/edit.html.erb remove mod button (#14057)
- Adds local: true to fix broken Admin tag mod removal button
  - Refactors admin_creates_new_tag_spec.rb
2021-06-23 12:34:53 -06:00
Michael Kohl
9ae417d0ff
Remove navigation links from footer (#14041)
* Remove navigation links from footer

* Remove unneeded spec

* Target correct link

* Fix gems
2021-06-23 22:06:04 +07:00
Monica Mateiu
dbdd24c729
add org analytics menu if user has organizations (#13995)
* add organizations menu to analytics page

* Update app/views/dashboards/analytics.erb

Co-authored-by: rhymes <github@rhymes.dev>

* replace querySelector with getElementsByClassName for better performance

* Update app/javascript/packs/analyticsDashboard.js

Co-authored-by: Suzanne Aitchison <suzanne@forem.com>

* Update app/views/dashboards/analytics.erb

Co-authored-by: Suzanne Aitchison <suzanne@forem.com>

* refactor analytics view and add specs

* skip flakey analyticsNavigation spec

Co-authored-by: rhymes <github@rhymes.dev>
Co-authored-by: Suzanne Aitchison <suzanne@forem.com>
2021-06-23 14:35:23 +02:00
Julianna Tetreault
281fdc499c
[15-Minute Fix] Fix Broken Admin Tags #create and #update Forms (#14049)
* Adds name to ALLOWED_PARAMS in Admin::TagsController

* Adds local: true to /admin/tags/_form.html.erb
  - Sets local: true in tags partial for proper
redirects and to properly render flash messages
for both the #create and #update actions

* Adds local: true to the Add Moderator button for tags

* Adds and updates systems specs for tags
  - Updates the admin_updates_tag_spec.rb system spec
  - Adds an admin_creates_new_tag_spec.rb system spec
  - Updates the success flash message in Admin::TagsController
2021-06-23 14:30:17 +02:00