/
rollbacks_test.rb
58 lines (48 loc) · 1.74 KB
/
rollbacks_test.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
require 'test_helper'
module Shipit
class RollbackTest < ActiveSupport::TestCase
setup do
@stack = shipit_stacks(:shipit)
@rollback = Rollback.new
end
test "#rollback? returns true" do
assert @rollback.rollback?
end
test "#rollbackable? returns false" do
refute @rollback.rollbackable?
end
test "#supports_rollback? returns false" do
refute @rollback.supports_rollback?
end
test "when a rollback succeed reverted commits are locked" do
@stack.tasks.where.not(id: shipit_tasks(:shipit_complete).id).delete_all
deploy = @stack.deploys.success.last
reverted_commit = deploy.until_commit
@stack.commits.create!(
sha: '50ce7d4440fcd8c734f8b7b76c86f8db46706e4f',
message: %(Revert "#{reverted_commit.message_header}"),
author: reverted_commit.author,
committer: reverted_commit.committer,
authored_at: Time.zone.now,
committed_at: Time.zone.now,
)
expected = [
['Revert "Merge pull request #7 from shipit-engine/yoloshipit"', false, nil],
["whoami", false, nil],
['fix all the things', false, nil],
]
assert_equal(expected, @stack.undeployed_commits.map { |c| [c.title, c.locked?, c.lock_author_id] })
rollback = deploy.trigger_revert
rollback.run!
rollback.complete!
user_id = reverted_commit.author.id
expected = [
['Revert "Merge pull request #7 from shipit-engine/yoloshipit"', false, nil],
["whoami", true, user_id],
['fix all the things', true, user_id],
['yoloshipit!', true, user_id],
]
assert_equal(expected, @stack.undeployed_commits.map { |c| [c.title, c.locked?, c.lock_author_id] })
end
end
end