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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
|
# frozen_string_literal: true
module QA
RSpec.describe 'Create' do
describe 'Snippet index page' do
let(:personal_snippet_with_single_file) do
Resource::Snippet.fabricate_via_api! do |snippet|
snippet.title = "Personal snippet with one file-#{SecureRandom.hex(8)}"
snippet.visibility = 'Public'
end
end
let(:personal_snippet_with_multiple_files) do
Resource::Snippet.fabricate_via_api! do |snippet|
snippet.title = "Personal snippet with multiple files-#{SecureRandom.hex(8)}"
snippet.visibility = 'Private'
snippet.file_name = 'First file name'
snippet.file_content = 'first file content'
snippet.add_files do |files|
files.append(name: 'Second file name', content: 'second file content')
files.append(name: 'Third file name', content: 'third file content')
end
end
end
let(:project_snippet_with_single_file) do
Resource::ProjectSnippet.fabricate_via_api! do |snippet|
snippet.title = "Project snippet with one file-#{SecureRandom.hex(8)}"
snippet.visibility = 'Private'
end
end
let(:project_snippet_with_multiple_files) do
Resource::ProjectSnippet.fabricate_via_api! do |snippet|
snippet.title = "Project snippet with multiple files-#{SecureRandom.hex(8)}"
snippet.visibility = 'Public'
snippet.file_name = 'First file name'
snippet.file_content = 'first file content'
snippet.add_files do |files|
files.append(name: 'Second file name', content: 'second file content')
files.append(name: 'Third file name', content: 'third file content')
end
end
end
before do
Flow::Login.sign_in
end
after do
personal_snippet_with_single_file.remove_via_api!
personal_snippet_with_multiple_files.remove_via_api!
project_snippet_with_single_file.remove_via_api!
project_snippet_with_multiple_files.remove_via_api!
end
shared_examples 'displaying details on index page' do |snippet_type, testcase|
it "shows correct details of #{snippet_type} including file number", testcase: testcase do
send(snippet_type)
Page::Main::Menu.perform do |menu|
menu.go_to_menu_dropdown_option(:snippets_link)
end
Page::Dashboard::Snippet::Index.perform do |snippet|
aggregate_failures 'file content verification' do
expect(snippet).to have_snippet_title(send(snippet_type).title)
expect(snippet).to have_visibility_level(send(snippet_type).title, send(snippet_type).visibility)
expect(snippet).to have_number_of_files(send(snippet_type).title, send(snippet_type).files.count)
end
end
end
end
it_behaves_like 'displaying details on index page', :personal_snippet_with_single_file, 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/347717'
it_behaves_like 'displaying details on index page', :personal_snippet_with_multiple_files, 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/347720'
it_behaves_like 'displaying details on index page', :project_snippet_with_single_file, 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/347718'
it_behaves_like 'displaying details on index page', :project_snippet_with_multiple_files, 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/347719'
end
end
end
|