spec/dummy/spec/models/user_spec.rb in genderize-0.0.8 vs spec/dummy/spec/models/user_spec.rb in genderize-0.1.0

- old
+ new

@@ -2,36 +2,80 @@ describe User, type: :model do describe "gender" do - let(:user) { User.new(gender: "f") } + let(:user) { User.new(gender: gender) } - it "should return a Gender object" do - expect(user.gender).to be_an_instance_of(Genderize::Gender) + context "when female" do + let(:gender) { "f" } + + it "should return a Gender object" do + expect(user.gender).to be_an_instance_of(Genderize::Gender) + end + + it "should be female?" do + expect(user.gender).to be_female + end end - it "should be female?" do - expect(user.gender).to be_female + context "when male" do + let(:gender) { "m" } + + it "should return a Gender object" do + expect(user.gender).to be_an_instance_of(Genderize::Gender) + end + + it "should be male?" do + expect(user.gender).to be_male + end end - it "should be male when changed" do - user.gender = "m" - expect(user.gender).to be_male + context "when non-binary" do + let(:gender) { "n" } + + it "should return a Gender object" do + expect(user.gender).to be_an_instance_of(Genderize::Gender) + end + + it "should be non_binary?" do + expect(user.gender).to be_non_binary + end end - it "should be blank when changed" do - user.gender = "" - expect(user.gender).to be_empty + context "when blank" do + let(:gender) { "" } + + it "should return a Gender object" do + expect(user.gender).to be_an_instance_of(Genderize::Gender) + end + + it "should be blank?" do + expect(user.gender).to be_blank + end end + context "when changed" do + let(:gender) { "f" } + + it "should be male when changed" do + user.gender = "m" + expect(user.gender).to be_male + end + + it "should be blank when changed" do + user.gender = "" + expect(user.gender).to be_blank + end + end end describe "full gender names" do it 'should set the gender as the abbreviation' do expect(User.new(gender: "female").gender).to be_female expect(User.new(gender: "male").gender).to be_male + expect(User.new(gender: "non-binary").gender).to be_non_binary expect(User.new(gender: "").gender).to be_blank end end # Since the db column name can be changed, we're using the "name" column to