docbrown/spec/system/user_logs_in_with_twitter_spec.rb
Ali Spittel 52c60ce37e Feature/refactored onboarding (#3333)
* set up refactored onboarding

* create onboarding page

* add in first slide and change slide functionality

* fix test suite

* profile refactor

* profile refactor

* refactor to api

* add checkbox fields

* add checkbox fields

* remove puts

* add basic css

* add styling

* add redirect

* hide back and next at first and last slides

* test refactored onboarding

* test refactored onboarding

* remove article edits

* Fix schema

* Add deleted file back in

* Add default value for checked_t&c column

* Adjust HTML structure to keep nav buttons in place

* Fix ESLint issues on Onboarding.jsx file

* Handling for undefined or empty followedTags on getUserTags

* Fix codeclimate issues

* Fix codeclimate issues

* Fix more codeclimate issues

* Fix more codeclimate issues

* Update Onboarding snapshots

* Uncheck the CoC and T&C checkboxes on render

* Update snapshots

* Return false instead of raising error

* Update spec to use new onboarding

* Redirect to onboarding if haven't seen it yet

* Prevent redirect to onboarding from /signout_confirm

* Use assign_attributes instead of saving twice

* Move COC and T&C checkbox page to second slide

* Add 'go back to original page' functionality

* Reuse ready prototype logic

* Keep track of the last visited onboarding page

* Fix email subscription bug

* Fix overflow issue for tags page

* Remove height to prevent page container scrolling

* Check for CoC and T&C for displaying onboarding

* Add InstantClick redirect and preserve referrer in client

* Fix async update + check by using localStorage

* Turn off onboarding for tests

* Finalize design for onboarding

* Finalize design for onboarding

* Make bulk follows during onboarding

* Fix bulk follow test
2019-07-26 15:53:32 -04:00

57 lines
1.5 KiB
Ruby

require "rails_helper"
def user_grants_authorization_on_twitter_popup(twitter_callback_hash)
OmniAuth.config.add_mock(:twitter, twitter_callback_hash)
end
def user_do_not_grants_authorization_on_twitter_popup
OmniAuth.config.mock_auth[:twitter] = :invalid_credentials
end
RSpec.describe "Authenticating with twitter" do
let(:twitter_callback_hash) do
{
provider: "twitter",
uid: "111111",
credentials: {
token: "222222",
secret: "333333"
},
extra: {
access_token: "",
raw_info: {
name: "Bruce Wayne",
created_at: "Thu Jul 4 00:00:00 +0000 2013" # This is mandatory
}
},
info: {
nickname: "batman",
name: "Bruce Wayne",
email: "batman@batcave.com"
}
}
end
context "when user is new on dev.to" do
it "logging in with twitter using valid credentials" do
user_grants_authorization_on_twitter_popup(twitter_callback_hash)
visit root_path
click_link "Sign In With Twitter"
expect(page.html).to include("onboarding-container")
end
it "logging in with twitter using invalid credentials" do
user_do_not_grants_authorization_on_twitter_popup
visit root_path
click_link "Sign In With Twitter"
expect(page).to have_link "Sign In/Up"
expect(page).to have_link "Via Twitter"
expect(page).to have_link "Via GitHub"
expect(page).to have_link "All about dev.to"
end
end
end