Sha256: 8e35ad6ccfefbbe893f0cd1e204d95814b3424c616cc933208cba6551575b14e
Contents?: true
Size: 1.43 KB
Versions: 1
Compression:
Stored size: 1.43 KB
Contents
require 'spec_helper' require 'ronin/db/model/has_unique_name' describe Ronin::DB::Model::HasUniqueName do class TestModelHasUniqueName < ActiveRecord::Base include Ronin::DB::Model::HasUniqueName self.table_name = 'test_model_has_unique_name' end let(:model) { TestModelHasUniqueName } before(:all) do ActiveRecord::Base.connection.create_table :test_model_has_unique_name do |t| t.string :name end end describe ".included" do subject { model } it "should include Ronin::DB::Model" do expect(subject.ancestors).to include(Ronin::DB::Model) end it "should include Ronin::DB::Model::HasName::InstanceMethods" do expect(subject.ancestors).to include(Ronin::DB::Model::HasName::InstanceMethods) end it "should define a name attribute" do expect(subject.new).to respond_to(:name) expect(subject.new).to respond_to(:name=) end end describe "validations" do subject { model } it "should require a name" do record = subject.new expect(record).to_not be_valid record.name = 'foo' expect(record).to be_valid end context "when the given name already exists in the table" do let(:name) { 'foo' } before { model.create(name: name) } it "must require a unique name" do record = subject.new(name: name) expect(record).to_not be_valid end after { model.destroy_all } end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
ronin-db-activerecord-0.1.0.beta1 | spec/model/has_unique_name_spec.rb |