Create specs for users/edit.html.erb (#6739)
* No longer create identity in User factory * Create view specs for users/edit.html.erb * Update broken specs * Make identities transient an explicit array
This commit is contained in:
parent
325389467e
commit
0195d1be5b
8 changed files with 43 additions and 11 deletions
|
|
@ -22,12 +22,14 @@ FactoryBot.define do
|
|||
signup_cta_variant { "navbar_basic" }
|
||||
email_digest_periodic { false }
|
||||
|
||||
after(:create) do |user|
|
||||
create(:identity, user_id: user.id)
|
||||
end
|
||||
trait :with_identity do
|
||||
transient { identities { %i[github twitter] } }
|
||||
|
||||
trait :two_identities do
|
||||
after(:create) { |user| create(:identity, user_id: user.id, provider: "twitter") }
|
||||
after(:create) do |user, options|
|
||||
options.identities.each do |provider|
|
||||
create(:identity, user: user, provider: provider)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
trait :super_admin do
|
||||
|
|
|
|||
|
|
@ -106,7 +106,7 @@ RSpec.describe BadgeRewarder, type: :labor do
|
|||
|
||||
describe "::award_contributor_badges_from_github" do
|
||||
let(:my_ocktokit_client) { instance_double(Octokit::Client) }
|
||||
let(:user) { create(:user) }
|
||||
let(:user) { create(:user, :with_identity, identities: ["github"]) }
|
||||
|
||||
let(:stubbed_github_commit) do
|
||||
[OpenStruct.new(author: OpenStruct.new(id: user.identities.first.uid))]
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
require "rails_helper"
|
||||
|
||||
RSpec.describe GithubRepo, type: :model do
|
||||
let(:user) { create(:user) }
|
||||
let(:user) { create(:user, :with_identity, identities: ["github"]) }
|
||||
let(:repo) { build(:github_repo, user_id: user.id) }
|
||||
|
||||
it { is_expected.to validate_presence_of(:name) }
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
require "rails_helper"
|
||||
|
||||
RSpec.describe "GithubRepos", type: :request do
|
||||
let(:user) { create(:user) }
|
||||
let(:user) { create(:user, :with_identity, identities: ["github"]) }
|
||||
let(:repo) { build(:github_repo, user_id: user.id) }
|
||||
let(:my_octokit_client) { instance_double(Octokit::Client) }
|
||||
let(:stubbed_github_repos) do
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
require "rails_helper"
|
||||
|
||||
RSpec.describe "internal/users", type: :request do
|
||||
let!(:user) { create(:user) }
|
||||
let!(:user) { create(:user, :with_identity, identities: ["github"]) }
|
||||
let(:admin) { create(:user, :super_admin) }
|
||||
|
||||
before do
|
||||
|
|
|
|||
|
|
@ -221,7 +221,7 @@ RSpec.describe "UserSettings", type: :request do
|
|||
|
||||
describe "DELETE /users/remove_association" do
|
||||
context "when user has two identities" do
|
||||
let(:user) { create(:user, :two_identities) }
|
||||
let(:user) { create(:user, :with_identity, identities: %w[github twitter]) }
|
||||
|
||||
before { sign_in user }
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
require "rails_helper"
|
||||
|
||||
RSpec.describe Users::Delete, type: :service do
|
||||
let(:user) { create(:user) }
|
||||
let(:user) { create(:user, :with_identity, identities: ["github"]) }
|
||||
|
||||
it "deletes user" do
|
||||
described_class.call(user)
|
||||
|
|
|
|||
30
spec/views/users/edit.html.erb_spec.rb
Normal file
30
spec/views/users/edit.html.erb_spec.rb
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
require "rails_helper"
|
||||
|
||||
RSpec.describe "users/edit", type: :view do
|
||||
let(:user) { create(:user) }
|
||||
|
||||
context "when on profile edit" do
|
||||
before do
|
||||
assign(:tab, "profile")
|
||||
assign(:user, user)
|
||||
assign(:tab_list, user.settings_tab_list)
|
||||
allow(view).to receive(:current_user).and_return(user)
|
||||
end
|
||||
|
||||
it "asks user to connect with github when it's missing" do
|
||||
create(:identity, user: user, provider: "twitter")
|
||||
|
||||
render
|
||||
expect(rendered).to match(/CONNECT GITHUB ACCOUNT/)
|
||||
expect(rendered).not_to match(/CONNECT TWITTER ACCOUNT/)
|
||||
end
|
||||
|
||||
it "asks user to connect with twitter if it's missing" do
|
||||
create(:identity, user: user, provider: "github")
|
||||
|
||||
render
|
||||
expect(rendered).to match(/CONNECT TWITTER ACCOUNT/)
|
||||
expect(rendered).not_to match(/CONNECT GITHUB ACCOUNT/)
|
||||
end
|
||||
end
|
||||
end
|
||||
Loading…
Add table
Reference in a new issue