Commit graph

2988 commits

Author SHA1 Message Date
rhymes
cf9f6094cd
Have specs run without Redis and refactor ConsumerApp and Device (#13647)
* Add fakeredis gem

* Mock Pusher::PushNotifications in specs

* Remove Redis from Travis

* Add Android tests to ConsumerApp specs

* Use mock for push notification tests and refactor ConsumerApp and Device code

* Fix remaining broken specs

* Use symbols

* Cleanup rpush helpers

* Pusher::PushNotifications is no more

* Use human friendly platform in Admin::ConsumerApps index page
2021-05-07 08:03:16 +02:00
Daniel Uber
8678cd5ae4
Fixes error in seeded navigation link svg icon (#13683)
I was seeing during testing this console error:

"Error: <path> attribute d: Expected path command, "…0-4 2 2 0 000 4z\\".

Removing the \" and leaving just " seems like it corrected that (the
error stops showing, the icon is unchanged since the prior path was
drawn before the error raised).
2021-05-06 10:37:52 -05:00
Ridhwana
449723d8c7
[15-min-fix] Remove/Update the last of the admin hardcoded paths (#13681)
* chore: hardcoded paths

* hardcoded docs path

* Update docs/admin/admin-search.md

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

Co-authored-by: rhymes <github@rhymes.dev>
2021-05-06 15:12:06 +02:00
dependabot[bot]
9066de9b65
Bump rubocop-rails from 2.9.1 to 2.10.0 (#13655)
* Bump rubocop-rails from 2.9.1 to 2.10.0

Bumps [rubocop-rails](https://github.com/rubocop/rubocop-rails) from 2.9.1 to 2.10.0.
- [Release notes](https://github.com/rubocop/rubocop-rails/releases)
- [Changelog](https://github.com/rubocop/rubocop-rails/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rubocop/rubocop-rails/compare/v2.9.1...v2.10.0)

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

* Add new cops and fix violations

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: rhymes <rhymes@hey.com>
2021-05-05 14:16:44 -07:00
Mac Siri
cf538f83c8
Fix invalid form during Creator onboarding. (#13673) 2021-05-05 16:14:48 -04:00
Daniel Uber
d145149de7
Clear the cached settings before testing the rate limiter (#13669)
* Override the Settings::RateLimit.follow_count_daily

An interaction was occurring when the data update script test to move
these settings was run prior to the rate limit test - where the rate
limiter was created with the value 23 for the follow count, but the
settings module was reporting 500.

Stub out the database setting to an explicit value - and allow the
user follow count to be one more (so that we trigger the rate limit
and respond with a 429).

* Clear the settings cache before reading the values

This appears to correct the modification made (and reverted?) in the
data update test without requiring more changes to the context (which
remains as it was).
2021-05-05 14:34:22 -05:00
Andy Zhao
ebbbcee41a
[15-min-fix] Remove badge slug field b/c auto-gen by title (#13649)
* Make explicit that badge slug is auto generated

* Remove slug from new form

* Remove unused disabled form field

* Remove link and Crayonsify form

* Add badge's path
2021-05-05 13:49:43 -04:00
Ridhwana
27eda9ca3d
chore: uncomment the test (#13658) 2021-05-05 19:00:15 +02:00
Andy Zhao
9970b1c2d5
Auto generate profile image for email signups (#13635)
* Add required tooltips and asterisks to fields

* Generate profile image for email signups

* Use be over eq

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

* Use path helpers over hard-coded paths

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

* Add labels to make it more accessible

* Stub it all... eek

* stub some more stuff

* stub stub stub

* Move aria label to proper label and fix tests

Co-authored-by: Michael Kohl <citizen428@dev.to>
2021-05-05 12:08:24 -04:00
Fernando Valverde
121603a44b
Replace Pusher Beams with Rpush PN delivery ✂️ ✂️ (#13588)
* Remove feature flag

* Remove Pusher Beams implementation

* Remove Pusher Beams require from initializer

* Adds consumer apps to sidebar + consider :admin_restructure

* Fix routes + PN target URL

* Remove old file that sneaked in

* Adds docs

* docs tweaks

* Apply suggestions from code review

Co-authored-by: rhymes <rhymes@hey.com>

Co-authored-by: rhymes <rhymes@hey.com>
2021-05-05 08:37:20 -06:00
Alex
a0ddb6a848
Cleanup search classes and serializers (#13645) 2021-05-05 09:20:59 -04:00
Jacob Herrington
e8df3b0915
Add safe navigation operator to stop 500 errors (#13646) 2021-05-04 11:37:37 -04:00
Alex
675b5fc5b6
Cleanup unused DataUpdateScripts (#13640) 2021-05-04 09:19:24 -04:00
Michael Kohl
aee05b4597
Retain registration form data on failed submission (#13614)
* Retain registration form data on failed submission

* Remove unnecessary command

* Apply suggestions from code review

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

* Fix e2e test

Co-authored-by: Suzanne Aitchison <suzanne@forem.com>
2021-05-04 10:52:20 +07:00
Daniel Uber
73529e71eb
Specify body and title of listings that shouldn't match a term (#13633)
Noticed the Faker book title included "No Country for Old Men" which
caused a failure expecting search for "old" to be empty (you can set
the title in the let block to replicate this).

Choose title and body that do not include "old" in order to prevent
false failures.
2021-05-03 15:47:12 -05:00
Jacob Herrington
bb9780ff3d
Remove references to social link profile fields (#13252)
* Remove references to social link profile fields

* Add some dummy data

* Remove special display social links

* Remove unnecessary tests

* Add tests for profile social icons

* PR feedback

* Remove nil check from erb

* Move view method into helper

* Don't render links in user settings
2021-05-03 10:16:02 -05:00
Alex
393ba00221
Remove Elasticsearch ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ (#13606)
* Attempt number 1

* Fix rack_attack specs

* Fix users_searches_users spec

* Fix display_users_search_spec

* Fix comment typo

* Remove search:destroy task from cypress

* Remove port 9300 from gitpod

* Stub response in attack_spec
2021-05-03 11:09:45 -04:00
Ridhwana
ba5c97de50
RFC 50 - Remove old admin routes and related code (#13579)
* chore: remove current_admin routes file

* feat: move all the admin routes into the admin file

* chore: remove conditionals for the sidebar and tabbed navbar

* remove some more notes where we use the admin_restructure feature flag

* chore: amend the tests now that the old routes and the admin_restructure flag are removed

* chore: remove more references to the  admin_restructure flag

* chore: fix the tests

* chore: remove sidebar_spec

* chore: add slash back

* chore: comment it out for now whilst I try and figure out why its not passing
2021-05-03 16:03:38 +02:00
Michael Kohl
c5598816ac
[15 minute fix] Remove secondary logo (#13595) 2021-05-03 09:35:10 +07:00
Alex
c88fc5d233
[Search 2.0] Remove remaining search_2 feature flags (#13591)
* Remove remaining search_2 feature flags

* Fix specs

* Fix more specs

* Remove leftovers

Co-authored-by: rhymes <rhymes@hey.com>
2021-04-30 09:02:35 -04:00
rhymes
9e4de49b79
[Hotfix] [Search 2.0] Optimize performance of listings and articles and fix bugs (#13577)
* Add tsvector index on listings

* Fix sorting order when fetching tag flares

* Add published_at as a sorting condition for Homepage::ArticlesQuery

* Re-added param needed by ES, this got lost somewhere down the line
2021-04-29 17:37:59 +02:00
Michael Kohl
3173bb4bc2
Remove <provider>_created_at columns (#13264)
* Remove <provider>_created_at columns from User

* Update code

* Clean up

* Fix authenticator specs

* Restore old behavior

* Update provider account age logic, again
2021-04-29 10:24:16 -05:00
rhymes
5af33a63dd
[Search 2.0] Remove search_2_listings, search_2_usernames feature flags (#13578)
* Remove search_2_listings feature flag

* Remove search_2_usernames feature flag
2021-04-29 15:54:21 +02:00
rhymes
c20c4abe3f
[Search 2.0] Use Article.cached_tagged_with* in queries (#13566)
* Add Symbol to Article.cached_tagged_with* and fix error bug

* Use Article.cached_tagged_with* in search

* Apply PR feedback suggestions
2021-04-29 12:00:49 +02:00
rhymes
fa38e4bf82
[Search 2.0] Remove search_2_tags feature flag (#13567) 2021-04-29 08:50:35 +02:00
Michael Kohl
3837c3a221
Refactor handling of mandatory settings (#13553)
* Refactor handling of mandatory settings

* Add e2e test

* Rename controller
2021-04-29 09:25:16 +07:00
Ridhwana
3a4da2dd5a
RFC 50: Remove hardcoded paths and use path_helpers instead (in the specs) (#13549)
* feat: update the paths in the spec files

* feat: update hardcoded paths with path helpers

* chore: update hardcoded paths to path helpers

* chore: hardcode describe blocks

* chore: oops

* feat: update some more hardcoded to use link_to's

* fix broken tests

* chore: admin_articles path

* chore: oops remove rails helper

* feat: add starting /

* chore: more pre slashes

* chore: add pre slashes

* chore: some small typos

* fix: oops
2021-04-28 21:32:51 +02:00
Daniel Uber
a31a4cafed
Remove hardcoded "localhost:3000" from metrics spec (#13561)
When the APP_DOMAIN is not "locahost:3000" then the overview language
does not include localhost:3000. Specifically I was running this test
in a container named "rails" and saw "rails" in place of localhost.

Ran the test both in the container and local/native to confirm this
fixes the one without breaking the other.
2021-04-28 10:50:02 -05:00
Vaidehi Joshi
f9a6067662
Do not create mentions when embedded within a comment liquid tag (#13552)
Fixes https://github.com/forem/forem/issues/13348.
2021-04-28 08:27:26 -07:00
Alex
0211a7c341
[Search 2.0] Fix podcast values (#13550)
* Fix podcast values

* Also select slug from podcast_episodes
2021-04-28 08:58:45 -04:00
rhymes
8762815709
[Search 2.0] Match both word boundaries when filtering tags (#13554) 2021-04-28 11:24:45 +02:00
Michael Kohl
1c7de11bef
Split Settings::UserExperience (#13495)
* Add Settings::UserExperience

* Add DUS

* Update usage

* Add controller

* Add e2e test

* Fix specs
2021-04-28 13:29:25 +07:00
rhymes
f48cf141a6
Use regexp operator to avoid matching partial tags (#13547) 2021-04-27 20:27:11 +02:00
Daniel Uber
0969e8edb4
Remove assert order not called instead of expecting id order (#13544)
We can't rely on the database returning published articles in ID
order, since there are indexes on published_at and on published which
could very well be in any order (btree), and no explicit `ORDER BY id
ASC` was in the query.

I checked the query that's run in the test against blazer, and confirmed that under
real conditions the results are pretty far from ordered:

```
SELECT articles.id FROM articles WHERE (published_at <= '2021-04-27') AND articles.published = true LIMIT 10 OFFSET 0;
----
 id
166916
637099
132444
431420
501939
141182
565391
515964
146231
677241
```

Change the expectation to assert Article does not receive :order, and
remove the expectation that the ids are returned in the order created.
2021-04-27 13:15:56 -05:00
Alex
315dca98c9
[Search 2.0] Podcasts on search page (#13475)
* Working MVP

* Add specs

* Add partial index on podcasts.published

* Add tsvector indexes to podcast_episodes

* Filter for reachable PodcastEpisodes

* Fix indentation/formatting

* Add podcast attribute to serializer
2021-04-27 13:29:22 -04:00
rhymes
2ff317687e
[Search 2.0] Articles (#13540)
* Rename the search scope to reflect its generic usage

* Add and use Search::Postgres::Article
2021-04-27 18:59:01 +02:00
rhymes
4ca995e1a1
Serialize tag flares correctly in Homepage::ArticleSerializer (#13537) 2021-04-27 16:07:05 +02:00
Andy Zhao
dc30eadad8
Remove unused attributes from markdown parser (#13484)
* Remove definitely unused attributes

* Refactor and remove unused attributes

* Add parentheses

* Prevent alt tag from having Liquid tags inside

* Add test

* Remove more unused attributes

* Scrub any valid attributes

* Remove unused tags and add more tests

* Remove <i> tag; <em> is used by parser

* Remove <center> b/c it's deprecated though still valid

* <cite> is a safe tag and used by some

* Eh I changed my mind about center lol

* Add underline <u> back in

* Don't allow width changes

* Use frozen constant for regex

* Use #remove over #gsub
2021-04-27 09:33:01 -04:00
rhymes
8a55c3e888
[Search 2.0] Add query filters for profile, organization and tag index pages (#13510)
* Re-order test cases to increase tests readability

* Add user_id filter for articles query

* Add organization_id and tags filters

* Add new params to SearchController#feed_content

* Add current_user param so that it can be tested for a small pool of users
2021-04-27 08:49:47 +02:00
Michael Kohl
610f6151e6
Split Settings::Community from SiteConfig (#13403)
* Add settings_community_contents model

* Add settings_communities model

* Update usage

* Add controller and update code

* Add e2e test

* Add data update script

* Update schema.rb

* Fix specs

* PR feedback

* Remove experience_* from Settings::Community

* Update spec

* Fix spec
2021-04-26 10:46:35 +02:00
Michael Kohl
f2f5e911cf
Add Settings::Mascot (#13451)
* Add Settings::Mascot

* Add DUS

* Update usage

* Fix e2e test and controller

* Fix specs

* Fix remaining spec
2021-04-26 11:39:19 +07:00
Michael Kohl
62542a35ab
15 minute fix: Remove /partnerships page ✂️ (#13480)
* Remove partnerships

* Remove dead link
2021-04-26 08:44:53 +07:00
Molly Struve
73973d3941
Refactor:Remove jobs_url and Dispaly Banner (#13479) 2021-04-25 12:59:54 -05:00
rhymes
996f6e980f
[Search 2.0] Users (#13453)
* Add Search::Postgres::User

* Add sorting params

* Use a better algorithm to filter out suspended users

* Add tsvector index on users.name

* Add specs

* Add UserRole spec

* Update spec/services/search/postgres/user_spec.rb

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

* Fix search with quotes in users's names

Co-authored-by: Michael Kohl <citizen428@dev.to>
2021-04-24 19:06:06 +02:00
rhymes
3292f27d53
Homepage query should not fail for nil article's cached tag list (#13492) 2021-04-24 18:36:34 +02:00
Fernando Valverde
affc704c9b
Runtime Banner for Mobile Deep Linking (#13190)
* First version using custom schemes for iOS

* Starting to take shape with /r/mobile redirect page

* Wording and aasa

* Adds e2e tests

* Trigger CI

* Tweaks to AASA

* Uses external pivot domain to trigger Universal Links

* Add missing external domain deep link

* Fix test by enabling runtime_banner only in E2E tests

* Fix URL encoding mismatch in Cypress test

* banner sttyling

* Cleanup unrelated changes

* Add AASA tests + remove lingering Gemfile.lock changes

* Fix cypress test

* Remove unnecessary window global assignment

* Trigger Travis

* Replace querySelectorAll with querySelector

* Apply suggestions from code review

Co-authored-by: Vaidehi Joshi <vaidehi.sj@gmail.com>

* Refactor inline comments, extract URL.deep_link logic and other review feedback

* Small tweaks

* Remove untrusted user-provided redirect (CodeQL suggestion)

* Fix failing tests

* Whoops - another test fix

* Use Forem's UDL server

* Extract timeoutDelay and add comment clarifying

* Add target='_blank' to deep link

* Add TODO comment for replacing hardcoded identifiers

* Apply suggestions from code review

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

* Add a11y attributes

Co-authored-by: Paweł Ludwiczak <ludwiczakpawel@gmail.com>
Co-authored-by: Vaidehi Joshi <vaidehi.sj@gmail.com>
Co-authored-by: Suzanne Aitchison <suzanne@forem.com>
2021-04-23 15:45:34 -06:00
Alex Vazquez
a0c3ef0329
Modify codepen_tag to parse public and private Pen urls (#13481)
* Modify codepen_tag to parse public and private Pen urls

* Fixed broken test for codepen_tag private test

* Replace codepen_tag tests with links to real Pens
2021-04-23 16:41:21 +01:00
Suzanne Aitchison
9a693d3ac6
add skip link to tag page (#13485) 2021-04-23 16:10:28 +01:00
Suzanne Aitchison
ee66e4cf7d
[15 min fix] Fix following tags input a11y errors (#13425)
* fix following tags input a11y errors

* give hidden inputs unique ids

* update html element code in initScrolling, update test with new ids

* refactor

* trigger travis

* target the textfield inside the div in the test
2021-04-23 14:40:02 +01:00
Daniel Uber
3a333ebbb1
Revert "re-enable skipped tests (#13456)" (#13478)
This reverts commit 7c9a23fde2.
2021-04-22 15:44:33 -05:00