diff options
Diffstat (limited to 'spec/frontend/fixtures')
-rw-r--r-- | spec/frontend/fixtures/api_projects.rb | 15 | ||||
-rw-r--r-- | spec/frontend/fixtures/comment_templates.rb (renamed from spec/frontend/fixtures/saved_replies.rb) | 24 | ||||
-rw-r--r-- | spec/frontend/fixtures/issues.rb | 9 | ||||
-rw-r--r-- | spec/frontend/fixtures/job_artifacts.rb | 2 | ||||
-rw-r--r-- | spec/frontend/fixtures/jobs.rb | 64 | ||||
-rw-r--r-- | spec/frontend/fixtures/milestones.rb | 43 | ||||
-rw-r--r-- | spec/frontend/fixtures/pipelines.rb | 25 | ||||
-rw-r--r-- | spec/frontend/fixtures/projects.rb | 2 | ||||
-rw-r--r-- | spec/frontend/fixtures/runner.rb | 28 | ||||
-rw-r--r-- | spec/frontend/fixtures/startup_css.rb | 15 | ||||
-rw-r--r-- | spec/frontend/fixtures/static/oauth_remember_me.html | 2 | ||||
-rw-r--r-- | spec/frontend/fixtures/static/search_autocomplete.html | 15 | ||||
-rw-r--r-- | spec/frontend/fixtures/timelogs.rb | 53 |
13 files changed, 198 insertions, 99 deletions
diff --git a/spec/frontend/fixtures/api_projects.rb b/spec/frontend/fixtures/api_projects.rb index d1dfd223419..24c47d8d139 100644 --- a/spec/frontend/fixtures/api_projects.rb +++ b/spec/frontend/fixtures/api_projects.rb @@ -6,10 +6,11 @@ RSpec.describe API::Projects, '(JavaScript fixtures)', type: :request do include ApiHelpers include JavaScriptFixturesHelpers - let(:namespace) { create(:namespace, name: 'gitlab-test') } - let(:project) { create(:project, :repository, namespace: namespace, path: 'lorem-ipsum') } - let(:project_empty) { create(:project_empty_repo, namespace: namespace, path: 'lorem-ipsum-empty') } - let(:user) { project.owner } + let_it_be(:namespace) { create(:namespace, name: 'gitlab-test') } + let_it_be(:project) { create(:project, :repository, namespace: namespace, path: 'lorem-ipsum') } + let_it_be(:project_empty) { create(:project_empty_repo, namespace: namespace, path: 'lorem-ipsum-empty') } + let_it_be(:user) { project.owner } + let_it_be(:personal_projects) { create_list(:project, 3, namespace: user.namespace, topics: create_list(:topic, 5)) } it 'api/projects/get.json' do get api("/projects/#{project.id}", user) @@ -28,4 +29,10 @@ RSpec.describe API::Projects, '(JavaScript fixtures)', type: :request do expect(response).to be_successful end + + it 'api/users/projects/get.json' do + get api("/users/#{user.id}/projects", user) + + expect(response).to be_successful + end end diff --git a/spec/frontend/fixtures/saved_replies.rb b/spec/frontend/fixtures/comment_templates.rb index 613e4a1b447..32f425d7ebd 100644 --- a/spec/frontend/fixtures/saved_replies.rb +++ b/spec/frontend/fixtures/comment_templates.rb @@ -13,9 +13,9 @@ RSpec.describe GraphQL::Query, type: :request, feature_category: :user_profile d sign_in(current_user) end - context 'when user has no saved replies' do - base_input_path = 'saved_replies/queries/' - base_output_path = 'graphql/saved_replies/' + context 'when user has no comment templates' do + base_input_path = 'comment_templates/queries/' + base_output_path = 'graphql/comment_templates/' query_name = 'saved_replies.query.graphql' it "#{base_output_path}saved_replies_empty.query.graphql.json" do @@ -27,9 +27,9 @@ RSpec.describe GraphQL::Query, type: :request, feature_category: :user_profile d end end - context 'when user has saved replies' do - base_input_path = 'saved_replies/queries/' - base_output_path = 'graphql/saved_replies/' + context 'when user has comment templates' do + base_input_path = 'comment_templates/queries/' + base_output_path = 'graphql/comment_templates/' query_name = 'saved_replies.query.graphql' it "#{base_output_path}saved_replies.query.graphql.json" do @@ -44,9 +44,9 @@ RSpec.describe GraphQL::Query, type: :request, feature_category: :user_profile d end end - context 'when user creates saved reply' do - base_input_path = 'saved_replies/queries/' - base_output_path = 'graphql/saved_replies/' + context 'when user creates comment template' do + base_input_path = 'comment_templates/queries/' + base_output_path = 'graphql/comment_templates/' query_name = 'create_saved_reply.mutation.graphql' it "#{base_output_path}#{query_name}.json" do @@ -58,9 +58,9 @@ RSpec.describe GraphQL::Query, type: :request, feature_category: :user_profile d end end - context 'when user creates saved reply and it errors' do - base_input_path = 'saved_replies/queries/' - base_output_path = 'graphql/saved_replies/' + context 'when user creates comment template and it errors' do + base_input_path = 'comment_templates/queries/' + base_output_path = 'graphql/comment_templates/' query_name = 'create_saved_reply.mutation.graphql' it "#{base_output_path}create_saved_reply_with_errors.mutation.graphql.json" do diff --git a/spec/frontend/fixtures/issues.rb b/spec/frontend/fixtures/issues.rb index 1e6baf30a76..e85e683b599 100644 --- a/spec/frontend/fixtures/issues.rb +++ b/spec/frontend/fixtures/issues.rb @@ -20,15 +20,6 @@ RSpec.describe Projects::IssuesController, '(JavaScript fixtures)', :with_licens remove_repository(project) end - it 'issues/new-issue.html' do - get :new, params: { - namespace_id: project.namespace.to_param, - project_id: project - } - - expect(response).to be_successful - end - it 'issues/open-issue.html' do render_issue(create(:issue, project: project)) end diff --git a/spec/frontend/fixtures/job_artifacts.rb b/spec/frontend/fixtures/job_artifacts.rb index e53cdbbaaa5..6dadd6750f1 100644 --- a/spec/frontend/fixtures/job_artifacts.rb +++ b/spec/frontend/fixtures/job_artifacts.rb @@ -12,7 +12,7 @@ RSpec.describe 'Job Artifacts (GraphQL fixtures)' do let_it_be(:pipeline) { create(:ci_pipeline, project: project) } let_it_be(:user) { create(:user) } - job_artifacts_query_path = 'artifacts/graphql/queries/get_job_artifacts.query.graphql' + job_artifacts_query_path = 'ci/artifacts/graphql/queries/get_job_artifacts.query.graphql' it "graphql/#{job_artifacts_query_path}.json" do create(:ci_build, :failed, :artifacts, :trace_artifact, pipeline: pipeline) diff --git a/spec/frontend/fixtures/jobs.rb b/spec/frontend/fixtures/jobs.rb index 3583beb83c2..376c04cd629 100644 --- a/spec/frontend/fixtures/jobs.rb +++ b/spec/frontend/fixtures/jobs.rb @@ -48,49 +48,49 @@ RSpec.describe 'Jobs (JavaScript fixtures)' do let!(:with_artifact) { create(:ci_build, :success, name: 'with_artifact', job_artifacts: [artifact], pipeline: pipeline) } let!(:with_coverage) { create(:ci_build, :success, name: 'with_coverage', coverage: 40.0, pipeline: pipeline) } - fixtures_path = 'graphql/jobs/' - get_jobs_query = 'get_jobs.query.graphql' - full_path = 'frontend-fixtures/builds-project' + shared_examples 'graphql queries' do |path, jobs_query| + let_it_be(:variables) { {} } - let_it_be(:query) do - get_graphql_query_as_string("jobs/components/table/graphql/queries/#{get_jobs_query}") - end + let_it_be(:query) do + get_graphql_query_as_string("#{path}/#{jobs_query}") + end - it "#{fixtures_path}#{get_jobs_query}.json" do - post_graphql(query, current_user: user, variables: { - fullPath: full_path - }) + fixtures_path = 'graphql/jobs/' - expect_graphql_errors_to_be_empty - end + it "#{fixtures_path}#{jobs_query}.json" do + post_graphql(query, current_user: user, variables: variables) - it "#{fixtures_path}#{get_jobs_query}.as_guest.json" do - guest = create(:user) - project.add_guest(guest) + expect_graphql_errors_to_be_empty + end - post_graphql(query, current_user: guest, variables: { - fullPath: full_path - }) + it "#{fixtures_path}#{jobs_query}.as_guest.json" do + guest = create(:user) + project.add_guest(guest) - expect_graphql_errors_to_be_empty - end + post_graphql(query, current_user: guest, variables: variables) - it "#{fixtures_path}#{get_jobs_query}.paginated.json" do - post_graphql(query, current_user: user, variables: { - fullPath: full_path, - first: 2 - }) + expect_graphql_errors_to_be_empty + end - expect_graphql_errors_to_be_empty + it "#{fixtures_path}#{jobs_query}.paginated.json" do + post_graphql(query, current_user: user, variables: variables.merge({ first: 2 })) + + expect_graphql_errors_to_be_empty + end + + it "#{fixtures_path}#{jobs_query}.empty.json" do + post_graphql(query, current_user: user, variables: variables.merge({ first: 0 })) + + expect_graphql_errors_to_be_empty + end end - it "#{fixtures_path}#{get_jobs_query}.empty.json" do - post_graphql(query, current_user: user, variables: { - fullPath: full_path, - first: 0 - }) + it_behaves_like 'graphql queries', 'jobs/components/table/graphql/queries', 'get_jobs.query.graphql' do + let(:variables) { { fullPath: 'frontend-fixtures/builds-project' } } + end - expect_graphql_errors_to_be_empty + it_behaves_like 'graphql queries', 'pages/admin/jobs/components/table/graphql/queries', 'get_all_jobs.query.graphql' do + let(:user) { create(:admin) } end end diff --git a/spec/frontend/fixtures/milestones.rb b/spec/frontend/fixtures/milestones.rb new file mode 100644 index 00000000000..5e39dcf190a --- /dev/null +++ b/spec/frontend/fixtures/milestones.rb @@ -0,0 +1,43 @@ +# frozen_string_literal: true + +require 'spec_helper' + +RSpec.describe Projects::MilestonesController, '(JavaScript fixtures)', :with_license, feature_category: :team_planning, type: :controller do + include JavaScriptFixturesHelpers + + let_it_be(:user) { create(:user, feed_token: 'feedtoken:coldfeed') } + let_it_be(:namespace) { create(:namespace, name: 'frontend-fixtures') } + let_it_be(:project) { create(:project_empty_repo, namespace: namespace, path: 'milestones-project') } + + render_views + + before do + project.add_maintainer(user) + sign_in(user) + end + + after do + remove_repository(project) + end + + it 'milestones/new-milestone.html' do + get :new, params: { + namespace_id: project.namespace.to_param, + project_id: project + } + + expect(response).to be_successful + end + + private + + def render_milestone(milestone) + get :show, params: { + namespace_id: project.namespace.to_param, + project_id: project, + id: milestone.to_param + } + + expect(response).to be_successful + end +end diff --git a/spec/frontend/fixtures/pipelines.rb b/spec/frontend/fixtures/pipelines.rb index 768934d6278..24a6f6f7de6 100644 --- a/spec/frontend/fixtures/pipelines.rb +++ b/spec/frontend/fixtures/pipelines.rb @@ -3,6 +3,8 @@ require 'spec_helper' RSpec.describe Projects::PipelinesController, '(JavaScript fixtures)', type: :controller do + include ApiHelpers + include GraphqlHelpers include JavaScriptFixturesHelpers let_it_be(:namespace) { create(:namespace, name: 'frontend-fixtures') } @@ -56,4 +58,27 @@ RSpec.describe Projects::PipelinesController, '(JavaScript fixtures)', type: :co expect(response).to be_successful end + + describe GraphQL::Query, type: :request do + fixtures_path = 'graphql/pipelines/' + get_pipeline_actions_query = 'get_pipeline_actions.query.graphql' + + let!(:pipeline_with_manual_actions) { create(:ci_pipeline, project: project, user: user) } + let!(:build_scheduled) { create(:ci_build, :scheduled, pipeline: pipeline_with_manual_actions, stage: 'test') } + let!(:build_manual) { create(:ci_build, :manual, pipeline: pipeline_with_manual_actions, stage: 'build') } + let!(:build_manual_cannot_play) do + create(:ci_build, :manual, :skipped, pipeline: pipeline_with_manual_actions, stage: 'build') + end + + let_it_be(:query) do + get_graphql_query_as_string("pipelines/graphql/queries/#{get_pipeline_actions_query}") + end + + it "#{fixtures_path}#{get_pipeline_actions_query}.json" do + post_graphql(query, current_user: user, + variables: { fullPath: project.full_path, iid: pipeline_with_manual_actions.iid }) + + expect_graphql_errors_to_be_empty + end + end end diff --git a/spec/frontend/fixtures/projects.rb b/spec/frontend/fixtures/projects.rb index 2ccf2c0392f..8cd651c5b36 100644 --- a/spec/frontend/fixtures/projects.rb +++ b/spec/frontend/fixtures/projects.rb @@ -67,7 +67,7 @@ RSpec.describe 'Projects (JavaScript fixtures)', type: :controller do end end - describe 'Storage', feature_category: :subscription_cost_management do + describe 'Storage', feature_category: :consumables_cost_management do describe GraphQL::Query, type: :request do include GraphqlHelpers context 'project storage statistics query' do diff --git a/spec/frontend/fixtures/runner.rb b/spec/frontend/fixtures/runner.rb index 1581bc58289..099df607487 100644 --- a/spec/frontend/fixtures/runner.rb +++ b/spec/frontend/fixtures/runner.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'Runner (JavaScript fixtures)' do +RSpec.describe 'Runner (JavaScript fixtures)', feature_category: :runner_fleet do include AdminModeHelper include ApiHelpers include JavaScriptFixturesHelpers @@ -13,7 +13,7 @@ RSpec.describe 'Runner (JavaScript fixtures)' do let_it_be(:project) { create(:project, :repository, :public) } let_it_be(:project_2) { create(:project, :repository, :public) } - let_it_be(:runner) { create(:ci_runner, :instance, description: 'My Runner', version: '1.0.0') } + let_it_be(:runner) { create(:ci_runner, :instance, description: 'My Runner', creator: admin, version: '1.0.0') } let_it_be(:group_runner) { create(:ci_runner, :group, groups: [group], version: '2.0.0') } let_it_be(:group_runner_2) { create(:ci_runner, :group, groups: [group], version: '2.0.0') } let_it_be(:project_runner) { create(:ci_runner, :project, projects: [project, project_2], version: '2.0.0') } @@ -58,6 +58,13 @@ RSpec.describe 'Runner (JavaScript fixtures)' do expect_graphql_errors_to_be_empty end + + it "#{fixtures_path}#{all_runners_query}.with_creator.json" do + # "last: 1" fetches the first runner created, with admin as "creator" + post_graphql(query, current_user: admin, variables: { last: 1 }) + + expect_graphql_errors_to_be_empty + end end describe 'all_runners_count.query.graphql', type: :request do @@ -169,14 +176,17 @@ RSpec.describe 'Runner (JavaScript fixtures)' do get_graphql_query_as_string("#{query_path}#{runner_create_mutation}") end - it "#{fixtures_path}#{runner_create_mutation}.json" do - post_graphql(query, current_user: admin, variables: { - input: { - description: 'My dummy runner' - } - }) + context 'with runnerType set to INSTANCE_TYPE' do + it "#{fixtures_path}#{runner_create_mutation}.json" do + post_graphql(query, current_user: admin, variables: { + input: { + runnerType: 'INSTANCE_TYPE', + description: 'My dummy runner' + } + }) - expect_graphql_errors_to_be_empty + expect_graphql_errors_to_be_empty + end end end end diff --git a/spec/frontend/fixtures/startup_css.rb b/spec/frontend/fixtures/startup_css.rb index 18a4aa58c00..5b09e1c9495 100644 --- a/spec/frontend/fixtures/startup_css.rb +++ b/spec/frontend/fixtures/startup_css.rb @@ -40,21 +40,6 @@ RSpec.describe 'Startup CSS fixtures', type: :controller do expect(response).to be_successful end - # This Feature Flag is on by default - # This ensures that the correct css is generated - # When the feature flag is on, the general startup will capture it - # This will be removed as part of https://gitlab.com/gitlab-org/gitlab/-/issues/339348 - it "startup_css/project-#{type}-search-ff-off.html" do - stub_feature_flags(new_header_search: false) - - get :show, params: { - namespace_id: project.namespace.to_param, - id: project - } - - expect(response).to be_successful - end - # This Feature Flag is off by default # This ensures that the correct css is generated for super sidebar # When the feature flag is off, the general startup will capture it diff --git a/spec/frontend/fixtures/static/oauth_remember_me.html b/spec/frontend/fixtures/static/oauth_remember_me.html index 0b4d482925d..60277ecf66e 100644 --- a/spec/frontend/fixtures/static/oauth_remember_me.html +++ b/spec/frontend/fixtures/static/oauth_remember_me.html @@ -1,5 +1,5 @@ <div id="oauth-container"> - <input id="remember_me" type="checkbox" /> + <input id="remember_me_omniauth" type="checkbox" /> <form method="post" action="http://example.com/"> <button class="js-oauth-login twitter" type="submit"> diff --git a/spec/frontend/fixtures/static/search_autocomplete.html b/spec/frontend/fixtures/static/search_autocomplete.html deleted file mode 100644 index 29db9020424..00000000000 --- a/spec/frontend/fixtures/static/search_autocomplete.html +++ /dev/null @@ -1,15 +0,0 @@ -<div class="search search-form"> -<form class="form-inline"> -<div class="search-input-container"> -<div class="search-input-wrap"> -<div class="dropdown"> -<input class="search-input dropdown-menu-toggle" id="search"> -<div class="dropdown-menu dropdown-select"> -<div class="dropdown-content"></div> -</div> -</div> -</div> -</div> -<input class="js-search-project-options" type="hidden"> -</form> -</div> diff --git a/spec/frontend/fixtures/timelogs.rb b/spec/frontend/fixtures/timelogs.rb new file mode 100644 index 00000000000..c66e2447ea6 --- /dev/null +++ b/spec/frontend/fixtures/timelogs.rb @@ -0,0 +1,53 @@ +# frozen_string_literal: true + +require 'spec_helper' + +RSpec.describe 'Timelogs (GraphQL fixtures)', feature_category: :team_planning do + describe GraphQL::Query, type: :request do + include ApiHelpers + include GraphqlHelpers + include JavaScriptFixturesHelpers + + let_it_be(:guest) { create(:user) } + let_it_be(:developer) { create(:user) } + + context 'for time tracking timelogs' do + let_it_be(:project) { create(:project_empty_repo, :public) } + let_it_be(:issue) { create(:issue, project: project) } + + let(:query_path) { 'time_tracking/components/queries/get_timelogs.query.graphql' } + let(:query) { get_graphql_query_as_string(query_path) } + + before_all do + project.add_guest(guest) + project.add_developer(developer) + end + + it "graphql/get_timelogs_empty_response.json" do + post_graphql(query, current_user: guest, variables: { username: guest.username }) + + expect_graphql_errors_to_be_empty + end + + context 'with 20 or less timelogs' do + let_it_be(:timelogs) { create_list(:timelog, 6, user: developer, issue: issue, time_spent: 4 * 60 * 60) } + + it "graphql/get_non_paginated_timelogs_response.json" do + post_graphql(query, current_user: guest, variables: { username: developer.username }) + + expect_graphql_errors_to_be_empty + end + end + + context 'with more than 20 timelogs' do + let_it_be(:timelogs) { create_list(:timelog, 30, user: developer, issue: issue, time_spent: 4 * 60 * 60) } + + it "graphql/get_paginated_timelogs_response.json" do + post_graphql(query, current_user: guest, variables: { username: developer.username, first: 25 }) + + expect_graphql_errors_to_be_empty + end + end + end + end +end |