-
-
Notifications
You must be signed in to change notification settings - Fork 159
Expand file tree
/
Copy pathsync_track_test.rb
More file actions
44 lines (35 loc) · 1.4 KB
/
sync_track_test.rb
File metadata and controls
44 lines (35 loc) · 1.4 KB
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
require "test_helper"
class User::GithubSolutionSyncer
class SyncTrackTest < ActiveSupport::TestCase
test "noops when installation token returns 404" do
user = create(:user)
track = create(:track, slug: "ruby")
user_track = create(:user_track, user:, track:)
create(:user_github_solution_syncer, user:)
GithubApp.stubs(:generate_installation_token!).raises(GithubApp::InstallationNotFoundError)
# Should not raise
User::GithubSolutionSyncer::SyncTrack.(user_track)
end
test "noops when integration lacks permission" do
user = create(:user)
track = create(:track, slug: "ruby")
user_track = create(:user_track, user:, track:)
create(:user_github_solution_syncer, user:)
CreatePullRequest.stubs(:call).raises(Octokit::Forbidden)
# Should not raise
User::GithubSolutionSyncer::SyncTrack.(user_track)
end
test "requeues on server error" do
user = create(:user)
track = create(:track, slug: "ruby")
user_track = create(:user_track, user:, track:)
create(:user_github_solution_syncer, user:)
CreatePullRequest.stubs(:call).raises(Octokit::ServerError)
Mocha::Configuration.override(stubbing_non_existent_method: :allow) do
cmd = User::GithubSolutionSyncer::SyncTrack.new(user_track)
cmd.expects(:requeue_job!).with(30.seconds)
cmd.()
end
end
end
end