thoughtbot--factory_bot/spec/factory_bot/aliases_spec.rb

29 lines
943 B
Ruby

describe FactoryBot, "aliases" do
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
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
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
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
end