1959e15f7e
These are mainly because the fixture's UUIDs are deterministic rather than time-sortable, and more places where we need to correct the fixture IDs as well.
55 lines
1.8 KiB
Ruby
55 lines
1.8 KiB
Ruby
require "test_helper"
|
|
|
|
class Card::StatusesTest < ActiveSupport::TestCase
|
|
test "cards start out in a `drafted` state" do
|
|
card = boards(:writebook).cards.create! creator: users(:kevin), title: "Newly created card"
|
|
|
|
assert card.drafted?
|
|
end
|
|
|
|
test "cards are only visible to the creator when drafted" do
|
|
card = boards(:writebook).cards.create! creator: users(:kevin), title: "Drafted Card"
|
|
card.drafted!
|
|
|
|
assert_includes Card.published_or_drafted_by(users(:kevin)), card
|
|
assert_not_includes Card.published_or_drafted_by(users(:jz)), card
|
|
end
|
|
|
|
test "cards are visible to everyone when published" do
|
|
card = boards(:writebook).cards.create! creator: users(:kevin), title: "Published Card"
|
|
card.published!
|
|
|
|
assert_includes Card.published_or_drafted_by(users(:kevin)), card
|
|
assert_includes Card.published_or_drafted_by(users(:jz)), card
|
|
end
|
|
|
|
test "an event is created when a card is created in the published state" do
|
|
Current.session = sessions(:david)
|
|
|
|
assert_no_difference(-> { Event.count }) do
|
|
boards(:writebook).cards.create! creator: users(:kevin), title: "Draft Card"
|
|
end
|
|
|
|
assert_difference(-> { Event.count } => +1) do
|
|
@card = boards(:writebook).cards.create! creator: users(:kevin), title: "Published Card", status: :published
|
|
end
|
|
|
|
event = Event.order(created_at: :desc).first
|
|
assert_equal @card, event.eventable
|
|
assert_equal "card_published", event.action
|
|
end
|
|
|
|
test "an event is created when a card is published" do
|
|
Current.session = sessions(:david)
|
|
|
|
card = boards(:writebook).cards.create! creator: users(:kevin), title: "Published Card"
|
|
assert_difference(-> { Event.count } => +1) do
|
|
card.publish
|
|
end
|
|
|
|
event = Event.order(created_at: :desc).first
|
|
assert_equal card, event.eventable
|
|
assert_equal "card_published", event.action
|
|
end
|
|
end
|