summaryrefslogtreecommitdiff
path: root/qa/qa/specs/features/browser_ui/3_create/repository/clone_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'qa/qa/specs/features/browser_ui/3_create/repository/clone_spec.rb')
-rw-r--r--qa/qa/specs/features/browser_ui/3_create/repository/clone_spec.rb58
1 files changed, 58 insertions, 0 deletions
diff --git a/qa/qa/specs/features/browser_ui/3_create/repository/clone_spec.rb b/qa/qa/specs/features/browser_ui/3_create/repository/clone_spec.rb
new file mode 100644
index 00000000000..8b0613c5f78
--- /dev/null
+++ b/qa/qa/specs/features/browser_ui/3_create/repository/clone_spec.rb
@@ -0,0 +1,58 @@
+module QA
+ describe 'clone code from the repository' do
+ context 'with regular account over http' do
+ let(:location) do
+ Page::Project::Show.act do
+ choose_repository_clone_http
+ repository_location
+ end
+ end
+
+ before do
+ Runtime::Browser.visit(:gitlab, Page::Main::Login)
+ Page::Main::Login.act { sign_in_using_credentials }
+
+ Factory::Resource::Project.fabricate! do |scenario|
+ scenario.name = 'project-with-code'
+ scenario.description = 'project for git clone tests'
+ end
+
+ Git::Repository.perform do |repository|
+ repository.uri = location.uri
+ repository.use_default_credentials
+
+ repository.act do
+ clone
+ configure_identity('GitLab QA', 'root@gitlab.com')
+ commit_file('test.rb', 'class Test; end', 'Add Test class')
+ commit_file('README.md', '# Test', 'Add Readme')
+ push_changes
+ end
+ end
+ end
+
+ it 'user performs a deep clone' do
+ Git::Repository.perform do |repository|
+ repository.uri = location.uri
+ repository.use_default_credentials
+
+ repository.act { clone }
+
+ expect(repository.commits.size).to eq 2
+ end
+ end
+
+ it 'user performs a shallow clone' do
+ Git::Repository.perform do |repository|
+ repository.uri = location.uri
+ repository.use_default_credentials
+
+ repository.act { shallow_clone }
+
+ expect(repository.commits.size).to eq 1
+ expect(repository.commits.first).to include 'Add Readme'
+ end
+ end
+ end
+ end
+end