* 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
57 lines
1.5 KiB
Ruby
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
|