Refactor aliases_spec.rb to more closely adhere to the Let's Not school of RSpec (#1338)

Refactor aliases_spec.rb to more closely adhere to the Let's Not school of RSpec
This commit is contained in:
Richie Thomas 2019-10-15 09:42:52 -07:00 committed by GitHub
parent 2e48817bad
commit e98a4aae15
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 16 additions and 17 deletions

View File

@ -1,29 +1,28 @@
describe FactoryBot, "aliases" do
context "aliases for an attribute" do
subject { FactoryBot.aliases_for(:test) }
it { should include(:test) }
it { should include(:test_id) }
it "for an attribute should include the original attribute and a version suffixed with '_id'" do
aliases = FactoryBot.aliases_for(:test)
expect(aliases).to include(:test, :test_id)
end
context "aliases for a foreign key" do
subject { FactoryBot.aliases_for(:test_id) }
it { should include(:test) }
it { should include(:test_id) }
it "for a foreign key should include both the suffixed and un-suffixed variants" do
aliases = FactoryBot.aliases_for(:test_id)
expect(aliases).to include(:test, :test_id)
end
context "aliases for an attribute starting with an underscore" do
subject { FactoryBot.aliases_for(:_id) }
it { should_not include(:id) }
it "for an attribute which starts with an underscore should not include a non-underscored version" do
aliases = FactoryBot.aliases_for(:_id)
expect(aliases).not_to include(:id)
end
end
describe FactoryBot, "after defining an alias" do
before do
it "the list of aliases should include a variant with no suffix at all, and one with an '_id' suffix" do
FactoryBot.aliases << [/(.*)_suffix/, '\1']
aliases = FactoryBot.aliases_for(:test_suffix)
expect(aliases).to include(:test, :test_suffix_id)
end
subject { FactoryBot.aliases_for(:test_suffix) }
it { should include(:test) }
it { should include(:test_suffix_id) }
end