-
Notifications
You must be signed in to change notification settings - Fork 523
/
Copy pathpseud_spec.rb
65 lines (55 loc) · 2.01 KB
/
pseud_spec.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
require 'spec_helper'
describe Pseud do
it "has a valid factory" do
expect(build(:pseud)).to be_valid
end
it "is invalid without a name" do
expect(build(:pseud, name: nil)).to be_invalid
end
it "is invalid if there are special characters" do
expect(build(:pseud, name: "*pseud*")).to be_invalid
end
describe "save" do
before do
@user = User.new
@user.login = "mynamepseud"
@user.age_over_13 = "1"
@user.terms_of_service = "1"
@user.email = "foo1@archiveofourown.org"
@user.password = "password"
@user.save
end
before(:each) do
@pseud = Pseud.new
@pseud.user_id = @user.id
@pseud.name = "MyName"
end
it "should save a minimalistic pseud" do
@pseud.should be_valid_verbose
expect(@pseud.save).to be_truthy
@pseud.errors.should be_empty
end
it "should not save pseud with too-long alt text for icon" do
@pseud.icon_alt_text = "Something that is too long blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah this needs 250 characters lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum"
expect(@pseud.save).to be_falsey
@pseud.errors[:icon_alt_text].should_not be_empty
end
it "should not save pseud with too-long comment text for icon" do
@pseud.icon_comment_text = "Something that is too long blah blah blah blah blah blah this needs a mere 50 characters"
expect(@pseud.save).to be_falsey
@pseud.errors[:icon_comment_text].should_not be_empty
end
end
describe "touch_comments" do
let(:pseud) { create(:pseud) }
let!(:comment) { create(:comment, pseud: pseud) }
it "modifies the updated_at of associated comments" do
# Without this, the in-memory pseud has 0 comments and the test fails.
pseud.reload
travel(1.day)
expect do
pseud.update(name: "New Name")
end.to change { comment.reload.updated_at }
end
end
end