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