mirror of
https://github.com/discourse/discourse.git
synced 2024-12-05 10:36:30 +08:00
67 lines
1.5 KiB
Ruby
67 lines
1.5 KiB
Ruby
require 'spec_helper'
|
|
require 'discourse_poll/plugin'
|
|
require 'ostruct'
|
|
|
|
describe DiscoursePoll::Plugin do
|
|
|
|
let(:registry) { stub_everything }
|
|
let(:plugin) { DiscoursePoll::Plugin.new(registry) }
|
|
|
|
context '.setup' do
|
|
|
|
it 'registers its js' do
|
|
plugin.expects(:register_js)
|
|
plugin.setup
|
|
end
|
|
|
|
it 'registers its css' do
|
|
plugin.expects(:register_css)
|
|
plugin.setup
|
|
end
|
|
|
|
it 'registers a poll archetype' do
|
|
plugin.expects(:register_archetype).with('poll', DiscoursePoll::Plugin::POLL_OPTIONS)
|
|
plugin.setup
|
|
end
|
|
|
|
it 'registers a handler on post_create' do
|
|
plugin.expects(:listen_for).with(:before_create_post)
|
|
plugin.setup
|
|
end
|
|
end
|
|
|
|
|
|
context ".before_create_post" do
|
|
|
|
context 'without a poll' do
|
|
let(:post) { OpenStruct.new(archetype: 'something-else', post_number: 1000) }
|
|
|
|
it "doesn't set the sort order" do
|
|
plugin.before_create_post(post)
|
|
post.sort_order.should_not == DiscoursePoll::Plugin::MAX_SORT_ORDER
|
|
end
|
|
|
|
end
|
|
|
|
context 'with a poll' do
|
|
let(:post) { OpenStruct.new(archetype: 'poll') }
|
|
|
|
it 'sets the sort order to 1 when the post_number is 1' do
|
|
post.post_number = 1
|
|
plugin.before_create_post(post)
|
|
post.sort_order.should == 1
|
|
end
|
|
|
|
it 'sets the sort order to MAX_SORT_ORDER when the post_number is not 1' do
|
|
post.post_number = 1000
|
|
plugin.before_create_post(post)
|
|
post.sort_order.should == DiscoursePoll::Plugin::MAX_SORT_ORDER
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
end
|