mirror of
https://github.com/discourse/discourse.git
synced 2024-12-01 02:43:43 +08:00
b3d769ff4f
update rspec syntax to v3 change syntax to rspec v3 oops. fix typo mailers classes with rspec3 syntax helpers with rspec3 syntax jobs with rspec3 syntax serializers with rspec3 syntax views with rspec3 syntax support to rspec3 syntax category spec with rspec3 syntax
84 lines
2.9 KiB
Ruby
84 lines
2.9 KiB
Ruby
require 'spec_helper'
|
|
|
|
describe Draft do
|
|
before do
|
|
@user = Fabricate(:user)
|
|
end
|
|
it "can get a draft by user" do
|
|
Draft.set(@user, "test", 0, "data")
|
|
expect(Draft.get(@user, "test", 0)).to eq "data"
|
|
end
|
|
|
|
it "uses the user id and key correctly" do
|
|
Draft.set(@user, "test", 0,"data")
|
|
expect(Draft.get(Fabricate.build(:coding_horror), "test", 0)).to eq nil
|
|
end
|
|
|
|
it "should overwrite draft data correctly" do
|
|
Draft.set(@user, "test", 0, "data")
|
|
Draft.set(@user, "test", 0, "new data")
|
|
expect(Draft.get(@user, "test", 0)).to eq "new data"
|
|
end
|
|
|
|
it "should clear drafts on request" do
|
|
Draft.set(@user, "test", 0, "data")
|
|
Draft.clear(@user, "test", 0)
|
|
expect(Draft.get(@user, "test", 0)).to eq nil
|
|
end
|
|
|
|
it "should disregard old draft if sequence decreases" do
|
|
Draft.set(@user, "test", 0, "data")
|
|
Draft.set(@user, "test", 1, "hello")
|
|
Draft.set(@user, "test", 0, "foo")
|
|
expect(Draft.get(@user, "test", 0)).to eq nil
|
|
expect(Draft.get(@user, "test", 1)).to eq "hello"
|
|
end
|
|
|
|
|
|
context 'key expiry' do
|
|
it 'nukes new topic draft after a topic is created' do
|
|
u = Fabricate(:user)
|
|
Draft.set(u, Draft::NEW_TOPIC, 0, 'my draft')
|
|
_t = Fabricate(:topic, user: u)
|
|
s = DraftSequence.current(u, Draft::NEW_TOPIC)
|
|
expect(Draft.get(u, Draft::NEW_TOPIC, s)).to eq nil
|
|
end
|
|
|
|
it 'nukes new pm draft after a pm is created' do
|
|
u = Fabricate(:user)
|
|
Draft.set(u, Draft::NEW_PRIVATE_MESSAGE, 0, 'my draft')
|
|
t = Fabricate(:topic, user: u, archetype: Archetype.private_message, category_id: nil)
|
|
s = DraftSequence.current(t.user, Draft::NEW_PRIVATE_MESSAGE)
|
|
expect(Draft.get(u, Draft::NEW_PRIVATE_MESSAGE, s)).to eq nil
|
|
end
|
|
|
|
it 'does not nuke new topic draft after a pm is created' do
|
|
u = Fabricate(:user)
|
|
Draft.set(u, Draft::NEW_TOPIC, 0, 'my draft')
|
|
t = Fabricate(:topic, user: u, archetype: Archetype.private_message, category_id: nil)
|
|
s = DraftSequence.current(t.user, Draft::NEW_TOPIC)
|
|
expect(Draft.get(u, Draft::NEW_TOPIC, s)).to eq 'my draft'
|
|
end
|
|
|
|
it 'nukes the post draft when a post is created' do
|
|
user = Fabricate(:user)
|
|
topic = Fabricate(:topic)
|
|
p = PostCreator.new(user, raw: Fabricate.build(:post).raw, topic_id: topic.id).create
|
|
Draft.set(p.user, p.topic.draft_key, 0,'hello')
|
|
|
|
PostCreator.new(user, raw: Fabricate.build(:post).raw).create
|
|
expect(Draft.get(p.user, p.topic.draft_key, DraftSequence.current(p.user, p.topic.draft_key))).to eq nil
|
|
end
|
|
|
|
it 'nukes the post draft when a post is revised' do
|
|
p = Fabricate(:post)
|
|
Draft.set(p.user, p.topic.draft_key, 0,'hello')
|
|
p.revise(p.user, { raw: 'another test' })
|
|
s = DraftSequence.current(p.user, p.topic.draft_key)
|
|
expect(Draft.get(p.user, p.topic.draft_key, s)).to eq nil
|
|
end
|
|
|
|
it 'increases the sequence number when a post is revised'
|
|
end
|
|
end
|