summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDouglas Barbosa Alexandre <dbalexandre@gmail.com>2017-06-28 15:58:26 -0300
committerDouglas Barbosa Alexandre <dbalexandre@gmail.com>2017-06-28 16:08:36 -0300
commit639639ef8a759c3956502a12df62c138022ee104 (patch)
tree618bd2ac791b6e8fc4dec175abf5009be1572cd6
parent4b446bedcc9491b883708bc13a60e9daad34ecb5 (diff)
downloadgitlab-ce-fix-34417.tar.gz
Add tests for project import state transition: [:started] => [:finished]fix-34417
-rw-r--r--spec/models/project_spec.rb34
1 files changed, 34 insertions, 0 deletions
diff --git a/spec/models/project_spec.rb b/spec/models/project_spec.rb
index cc22b8a4edc..0d3494d9e58 100644
--- a/spec/models/project_spec.rb
+++ b/spec/models/project_spec.rb
@@ -1509,6 +1509,40 @@ describe Project, models: true do
end
end
+ describe 'project import state transitions' do
+ context 'state transition: [:started] => [:finished]' do
+ let(:housekeeping_service) { spy }
+
+ before do
+ allow(Projects::HousekeepingService).to receive(:new) { housekeeping_service }
+ end
+
+ it 'performs housekeeping when an import of a fresh project is completed' do
+ project = create(:project_empty_repo, :import_started, import_type: :github)
+
+ project.import_finish
+
+ expect(housekeeping_service).to have_received(:execute)
+ end
+
+ it 'does not perform housekeeping when project repository does not exist' do
+ project = create(:empty_project, :import_started, import_type: :github)
+
+ project.import_finish
+
+ expect(housekeeping_service).not_to have_received(:execute)
+ end
+
+ it 'does not perform housekeeping when project does not have a valid import type' do
+ project = create(:empty_project, :import_started, import_type: nil)
+
+ project.import_finish
+
+ expect(housekeeping_service).not_to have_received(:execute)
+ end
+ end
+ end
+
describe '#latest_successful_builds_for' do
def create_pipeline(status = 'success')
create(:ci_pipeline, project: project,