From 97b8f85e03f0b6dcfc5d85b92323be979bd27b09 Mon Sep 17 00:00:00 2001 From: Mike Greiling Date: Thu, 18 Jul 2019 14:11:09 -0500 Subject: Move frontend fixtures into spec/frontend Moves every fixture source file from spec/javascripts to spec/frontend --- .rubocop.yml | 4 +- config/karma.config.js | 2 +- doc/development/testing_guide/frontend_testing.md | 12 +- lib/tasks/frontend.rake | 2 +- spec/frontend/environment.js | 2 +- spec/frontend/fixtures/abuse_reports.rb | 26 ++ spec/frontend/fixtures/admin_users.rb | 28 ++ spec/frontend/fixtures/application_settings.rb | 33 ++ spec/frontend/fixtures/autocomplete_sources.rb | 39 ++ spec/frontend/fixtures/blob.rb | 34 ++ spec/frontend/fixtures/boards.rb | 28 ++ spec/frontend/fixtures/branches.rb | 32 ++ spec/frontend/fixtures/clusters.rb | 34 ++ spec/frontend/fixtures/commit.rb | 33 ++ spec/frontend/fixtures/deploy_keys.rb | 43 ++ spec/frontend/fixtures/groups.rb | 35 ++ spec/frontend/fixtures/issues.rb | 122 ++++++ spec/frontend/fixtures/jobs.rb | 54 +++ spec/frontend/fixtures/labels.rb | 58 +++ spec/frontend/fixtures/merge_requests.rb | 134 +++++++ spec/frontend/fixtures/merge_requests_diffs.rb | 69 ++++ spec/frontend/fixtures/pipeline_schedules.rb | 43 ++ spec/frontend/fixtures/pipelines.rb | 34 ++ spec/frontend/fixtures/projects.rb | 83 ++++ spec/frontend/fixtures/prometheus_service.rb | 34 ++ spec/frontend/fixtures/raw.rb | 39 ++ spec/frontend/fixtures/search.rb | 17 + spec/frontend/fixtures/services.rb | 34 ++ spec/frontend/fixtures/sessions.rb | 25 ++ spec/frontend/fixtures/snippet.rb | 33 ++ spec/frontend/fixtures/static/README.md | 3 + .../fixtures/static/ajax_loading_spinner.html | 3 + spec/frontend/fixtures/static/balsamiq_viewer.html | 1 + .../fixtures/static/create_item_dropdown.html | 11 + .../fixtures/static/environments/table.html | 15 + spec/frontend/fixtures/static/event_filter.html | 44 ++ spec/frontend/fixtures/static/gl_dropdown.html | 26 ++ spec/frontend/fixtures/static/gl_field_errors.html | 22 + spec/frontend/fixtures/static/images/green_box.png | Bin 0 -> 1306 bytes .../fixtures/static/images/one_white_pixel.png | Bin 0 -> 68 bytes spec/frontend/fixtures/static/images/red_box.png | Bin 0 -> 1305 bytes spec/frontend/fixtures/static/issuable_filter.html | 9 + .../fixtures/static/issue_sidebar_label.html | 26 ++ .../frontend/fixtures/static/line_highlighter.html | 107 +++++ spec/frontend/fixtures/static/linked_tabs.html | 20 + .../fixtures/static/merge_requests_show.html | 15 + .../fixtures/static/mini_dropdown_graph.html | 13 + spec/frontend/fixtures/static/notebook_viewer.html | 1 + .../fixtures/static/oauth_remember_me.html | 6 + spec/frontend/fixtures/static/pdf_viewer.html | 1 + spec/frontend/fixtures/static/pipeline_graph.html | 24 ++ spec/frontend/fixtures/static/pipelines.html | 3 + .../static/project_select_combo_button.html | 9 + spec/frontend/fixtures/static/projects.json | 445 +++++++++++++++++++++ .../fixtures/static/search_autocomplete.html | 15 + spec/frontend/fixtures/static/signin_tabs.html | 8 + spec/frontend/fixtures/static/sketch_viewer.html | 3 + spec/frontend/fixtures/todos.rb | 54 +++ spec/frontend/fixtures/u2f.rb | 44 ++ spec/javascripts/fixtures/.gitignore | 7 +- spec/javascripts/fixtures/abuse_reports.rb | 26 -- spec/javascripts/fixtures/admin_users.rb | 28 -- spec/javascripts/fixtures/application_settings.rb | 33 -- spec/javascripts/fixtures/autocomplete_sources.rb | 39 -- spec/javascripts/fixtures/blob.rb | 34 -- spec/javascripts/fixtures/boards.rb | 28 -- spec/javascripts/fixtures/branches.rb | 32 -- spec/javascripts/fixtures/clusters.rb | 34 -- spec/javascripts/fixtures/commit.rb | 33 -- spec/javascripts/fixtures/deploy_keys.rb | 43 -- spec/javascripts/fixtures/groups.rb | 35 -- spec/javascripts/fixtures/issues.rb | 122 ------ spec/javascripts/fixtures/jobs.rb | 54 --- spec/javascripts/fixtures/labels.rb | 58 --- spec/javascripts/fixtures/merge_requests.rb | 134 ------- spec/javascripts/fixtures/merge_requests_diffs.rb | 70 ---- spec/javascripts/fixtures/pipeline_schedules.rb | 43 -- spec/javascripts/fixtures/pipelines.rb | 34 -- spec/javascripts/fixtures/projects.rb | 83 ---- spec/javascripts/fixtures/prometheus_service.rb | 34 -- spec/javascripts/fixtures/raw.rb | 39 -- spec/javascripts/fixtures/search.rb | 17 - spec/javascripts/fixtures/services.rb | 34 -- spec/javascripts/fixtures/sessions.rb | 25 -- spec/javascripts/fixtures/snippet.rb | 33 -- spec/javascripts/fixtures/static/README.md | 3 - .../fixtures/static/ajax_loading_spinner.html | 3 - .../fixtures/static/balsamiq_viewer.html | 1 - .../fixtures/static/create_item_dropdown.html | 11 - .../fixtures/static/environments/table.html | 15 - spec/javascripts/fixtures/static/event_filter.html | 44 -- spec/javascripts/fixtures/static/gl_dropdown.html | 26 -- .../fixtures/static/gl_field_errors.html | 22 - .../fixtures/static/images/green_box.png | Bin 1306 -> 0 bytes .../fixtures/static/images/one_white_pixel.png | Bin 68 -> 0 bytes .../javascripts/fixtures/static/images/red_box.png | Bin 1305 -> 0 bytes .../fixtures/static/issuable_filter.html | 9 - .../fixtures/static/issue_sidebar_label.html | 26 -- .../fixtures/static/line_highlighter.html | 107 ----- spec/javascripts/fixtures/static/linked_tabs.html | 20 - .../fixtures/static/merge_requests_show.html | 15 - .../fixtures/static/mini_dropdown_graph.html | 13 - .../fixtures/static/notebook_viewer.html | 1 - .../fixtures/static/oauth_remember_me.html | 6 - spec/javascripts/fixtures/static/pdf_viewer.html | 1 - .../fixtures/static/pipeline_graph.html | 24 -- spec/javascripts/fixtures/static/pipelines.html | 3 - .../static/project_select_combo_button.html | 9 - spec/javascripts/fixtures/static/projects.json | 445 --------------------- .../fixtures/static/search_autocomplete.html | 15 - spec/javascripts/fixtures/static/signin_tabs.html | 8 - .../javascripts/fixtures/static/sketch_viewer.html | 3 - spec/javascripts/fixtures/todos.rb | 54 --- spec/javascripts/fixtures/u2f.rb | 44 -- 114 files changed, 2085 insertions(+), 2089 deletions(-) create mode 100644 spec/frontend/fixtures/abuse_reports.rb create mode 100644 spec/frontend/fixtures/admin_users.rb create mode 100644 spec/frontend/fixtures/application_settings.rb create mode 100644 spec/frontend/fixtures/autocomplete_sources.rb create mode 100644 spec/frontend/fixtures/blob.rb create mode 100644 spec/frontend/fixtures/boards.rb create mode 100644 spec/frontend/fixtures/branches.rb create mode 100644 spec/frontend/fixtures/clusters.rb create mode 100644 spec/frontend/fixtures/commit.rb create mode 100644 spec/frontend/fixtures/deploy_keys.rb create mode 100644 spec/frontend/fixtures/groups.rb create mode 100644 spec/frontend/fixtures/issues.rb create mode 100644 spec/frontend/fixtures/jobs.rb create mode 100644 spec/frontend/fixtures/labels.rb create mode 100644 spec/frontend/fixtures/merge_requests.rb create mode 100644 spec/frontend/fixtures/merge_requests_diffs.rb create mode 100644 spec/frontend/fixtures/pipeline_schedules.rb create mode 100644 spec/frontend/fixtures/pipelines.rb create mode 100644 spec/frontend/fixtures/projects.rb create mode 100644 spec/frontend/fixtures/prometheus_service.rb create mode 100644 spec/frontend/fixtures/raw.rb create mode 100644 spec/frontend/fixtures/search.rb create mode 100644 spec/frontend/fixtures/services.rb create mode 100644 spec/frontend/fixtures/sessions.rb create mode 100644 spec/frontend/fixtures/snippet.rb create mode 100644 spec/frontend/fixtures/static/README.md create mode 100644 spec/frontend/fixtures/static/ajax_loading_spinner.html create mode 100644 spec/frontend/fixtures/static/balsamiq_viewer.html create mode 100644 spec/frontend/fixtures/static/create_item_dropdown.html create mode 100644 spec/frontend/fixtures/static/environments/table.html create mode 100644 spec/frontend/fixtures/static/event_filter.html create mode 100644 spec/frontend/fixtures/static/gl_dropdown.html create mode 100644 spec/frontend/fixtures/static/gl_field_errors.html create mode 100644 spec/frontend/fixtures/static/images/green_box.png create mode 100644 spec/frontend/fixtures/static/images/one_white_pixel.png create mode 100644 spec/frontend/fixtures/static/images/red_box.png create mode 100644 spec/frontend/fixtures/static/issuable_filter.html create mode 100644 spec/frontend/fixtures/static/issue_sidebar_label.html create mode 100644 spec/frontend/fixtures/static/line_highlighter.html create mode 100644 spec/frontend/fixtures/static/linked_tabs.html create mode 100644 spec/frontend/fixtures/static/merge_requests_show.html create mode 100644 spec/frontend/fixtures/static/mini_dropdown_graph.html create mode 100644 spec/frontend/fixtures/static/notebook_viewer.html create mode 100644 spec/frontend/fixtures/static/oauth_remember_me.html create mode 100644 spec/frontend/fixtures/static/pdf_viewer.html create mode 100644 spec/frontend/fixtures/static/pipeline_graph.html create mode 100644 spec/frontend/fixtures/static/pipelines.html create mode 100644 spec/frontend/fixtures/static/project_select_combo_button.html create mode 100644 spec/frontend/fixtures/static/projects.json create mode 100644 spec/frontend/fixtures/static/search_autocomplete.html create mode 100644 spec/frontend/fixtures/static/signin_tabs.html create mode 100644 spec/frontend/fixtures/static/sketch_viewer.html create mode 100644 spec/frontend/fixtures/todos.rb create mode 100644 spec/frontend/fixtures/u2f.rb delete mode 100644 spec/javascripts/fixtures/abuse_reports.rb delete mode 100644 spec/javascripts/fixtures/admin_users.rb delete mode 100644 spec/javascripts/fixtures/application_settings.rb delete mode 100644 spec/javascripts/fixtures/autocomplete_sources.rb delete mode 100644 spec/javascripts/fixtures/blob.rb delete mode 100644 spec/javascripts/fixtures/boards.rb delete mode 100644 spec/javascripts/fixtures/branches.rb delete mode 100644 spec/javascripts/fixtures/clusters.rb delete mode 100644 spec/javascripts/fixtures/commit.rb delete mode 100644 spec/javascripts/fixtures/deploy_keys.rb delete mode 100644 spec/javascripts/fixtures/groups.rb delete mode 100644 spec/javascripts/fixtures/issues.rb delete mode 100644 spec/javascripts/fixtures/jobs.rb delete mode 100644 spec/javascripts/fixtures/labels.rb delete mode 100644 spec/javascripts/fixtures/merge_requests.rb delete mode 100644 spec/javascripts/fixtures/merge_requests_diffs.rb delete mode 100644 spec/javascripts/fixtures/pipeline_schedules.rb delete mode 100644 spec/javascripts/fixtures/pipelines.rb delete mode 100644 spec/javascripts/fixtures/projects.rb delete mode 100644 spec/javascripts/fixtures/prometheus_service.rb delete mode 100644 spec/javascripts/fixtures/raw.rb delete mode 100644 spec/javascripts/fixtures/search.rb delete mode 100644 spec/javascripts/fixtures/services.rb delete mode 100644 spec/javascripts/fixtures/sessions.rb delete mode 100644 spec/javascripts/fixtures/snippet.rb delete mode 100644 spec/javascripts/fixtures/static/README.md delete mode 100644 spec/javascripts/fixtures/static/ajax_loading_spinner.html delete mode 100644 spec/javascripts/fixtures/static/balsamiq_viewer.html delete mode 100644 spec/javascripts/fixtures/static/create_item_dropdown.html delete mode 100644 spec/javascripts/fixtures/static/environments/table.html delete mode 100644 spec/javascripts/fixtures/static/event_filter.html delete mode 100644 spec/javascripts/fixtures/static/gl_dropdown.html delete mode 100644 spec/javascripts/fixtures/static/gl_field_errors.html delete mode 100644 spec/javascripts/fixtures/static/images/green_box.png delete mode 100644 spec/javascripts/fixtures/static/images/one_white_pixel.png delete mode 100644 spec/javascripts/fixtures/static/images/red_box.png delete mode 100644 spec/javascripts/fixtures/static/issuable_filter.html delete mode 100644 spec/javascripts/fixtures/static/issue_sidebar_label.html delete mode 100644 spec/javascripts/fixtures/static/line_highlighter.html delete mode 100644 spec/javascripts/fixtures/static/linked_tabs.html delete mode 100644 spec/javascripts/fixtures/static/merge_requests_show.html delete mode 100644 spec/javascripts/fixtures/static/mini_dropdown_graph.html delete mode 100644 spec/javascripts/fixtures/static/notebook_viewer.html delete mode 100644 spec/javascripts/fixtures/static/oauth_remember_me.html delete mode 100644 spec/javascripts/fixtures/static/pdf_viewer.html delete mode 100644 spec/javascripts/fixtures/static/pipeline_graph.html delete mode 100644 spec/javascripts/fixtures/static/pipelines.html delete mode 100644 spec/javascripts/fixtures/static/project_select_combo_button.html delete mode 100644 spec/javascripts/fixtures/static/projects.json delete mode 100644 spec/javascripts/fixtures/static/search_autocomplete.html delete mode 100644 spec/javascripts/fixtures/static/signin_tabs.html delete mode 100644 spec/javascripts/fixtures/static/sketch_viewer.html delete mode 100644 spec/javascripts/fixtures/todos.rb delete mode 100644 spec/javascripts/fixtures/u2f.rb diff --git a/.rubocop.yml b/.rubocop.yml index e5fe527e611..79e06439ac2 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -60,8 +60,8 @@ Style/FrozenStringLiteralComment: RSpec/FilePath: Exclude: - 'qa/**/*' - - 'spec/javascripts/fixtures/*' - - 'ee/spec/javascripts/fixtures/*' + - 'spec/frontend/fixtures/*' + - 'ee/spec/frontend/fixtures/*' - 'spec/requests/api/v3/*' Naming/FileName: diff --git a/config/karma.config.js b/config/karma.config.js index 4aaa773d6cc..97794225a3f 100644 --- a/config/karma.config.js +++ b/config/karma.config.js @@ -108,7 +108,7 @@ module.exports = function(config) { process.env.TZ = 'Etc/UTC'; const fixturesPath = `tmp/tests/frontend/fixtures${IS_EE ? '-ee' : ''}`; - const staticFixturesPath = 'spec/javascripts/fixtures/static'; + const staticFixturesPath = 'spec/frontend/fixtures/static'; const karmaConfig = { basePath: ROOT_PATH, diff --git a/doc/development/testing_guide/frontend_testing.md b/doc/development/testing_guide/frontend_testing.md index f16037e9e0a..ff28c2ea5e2 100644 --- a/doc/development/testing_guide/frontend_testing.md +++ b/doc/development/testing_guide/frontend_testing.md @@ -518,8 +518,8 @@ Information on setting up and running RSpec integration tests with Code that is added to HAML templates (in `app/views/`) or makes Ajax requests to the backend has tests that require HTML or JSON from the backend. Fixtures for these tests are located at: -- `spec/javascripts/fixtures/`, for running tests in CE. -- `ee/spec/javascripts/fixtures/`, for running tests in EE. +- `spec/frontend/fixtures/`, for running tests in CE. +- `ee/spec/frontend/fixtures/`, for running tests in EE. Fixture files in: @@ -530,7 +530,7 @@ The following are examples of tests that work for both Karma and Jest: ```javascript it('makes a request', () => { - const responseBody = getJSONFixture('some/fixture.json'); // loads spec/javascripts/fixtures/some/fixture.json + const responseBody = getJSONFixture('some/fixture.json'); // loads spec/frontend/fixtures/some/fixture.json axiosMock.onGet(endpoint).reply(200, responseBody); myButton.click(); @@ -539,7 +539,7 @@ it('makes a request', () => { }); it('uses some HTML element', () => { - loadFixtures('some/page.html'); // loads spec/javascripts/fixtures/some/page.html and adds it to the DOM + loadFixtures('some/page.html'); // loads spec/frontend/fixtures/some/page.html and adds it to the DOM const element = document.getElementById('#my-id'); @@ -547,12 +547,12 @@ it('uses some HTML element', () => { }); ``` -HTML and JSON fixtures are generated from backend views and controllers using RSpec (see `spec/javascripts/fixtures/*.rb`). +HTML and JSON fixtures are generated from backend views and controllers using RSpec (see `spec/frontend/fixtures/*.rb`). For each fixture, the content of the `response` variable is stored in the output file. This variable gets automagically set if the test is marked as `type: :request` or `type: :controller`. Fixtures are regenerated using the `bin/rake frontend:fixtures` command but you can also generate them individually, -for example `bin/rspec spec/javascripts/fixtures/merge_requests.rb`. +for example `bin/rspec spec/frontend/fixtures/merge_requests.rb`. When creating a new fixture, it often makes sense to take a look at the corresponding tests for the endpoint in `(ee/)spec/controllers/` or `(ee/)spec/requests/`. ## Gotchas diff --git a/lib/tasks/frontend.rake b/lib/tasks/frontend.rake index e1f23bfa06e..1cac7520227 100644 --- a/lib/tasks/frontend.rake +++ b/lib/tasks/frontend.rake @@ -2,7 +2,7 @@ unless Rails.env.production? namespace :frontend do desc 'GitLab | Frontend | Generate fixtures for JavaScript tests' RSpec::Core::RakeTask.new(:fixtures, [:pattern]) do |t, args| - args.with_defaults(pattern: '{spec,ee/spec}/javascripts/fixtures/*.rb') + args.with_defaults(pattern: '{spec,ee/spec}/frontend/fixtures/*.rb') ENV['NO_KNAPSACK'] = 'true' t.pattern = args[:pattern] t.rspec_opts = '--format documentation' diff --git a/spec/frontend/environment.js b/spec/frontend/environment.js index 3486d7769c1..290c0e797cb 100644 --- a/spec/frontend/environment.js +++ b/spec/frontend/environment.js @@ -39,7 +39,7 @@ class CustomEnvironment extends JSDOMEnvironment { }; this.global.fixturesBasePath = `${ROOT_PATH}/tmp/tests/frontend/fixtures${IS_EE ? '-ee' : ''}`; - this.global.staticFixturesBasePath = `${ROOT_PATH}/spec/javascripts/fixtures`; + this.global.staticFixturesBasePath = `${ROOT_PATH}/spec/frontend/fixtures`; // Not yet supported by JSDOM: https://github.com/jsdom/jsdom/issues/317 this.global.document.createRange = () => ({ diff --git a/spec/frontend/fixtures/abuse_reports.rb b/spec/frontend/fixtures/abuse_reports.rb new file mode 100644 index 00000000000..21356390cae --- /dev/null +++ b/spec/frontend/fixtures/abuse_reports.rb @@ -0,0 +1,26 @@ +require 'spec_helper' + +describe Admin::AbuseReportsController, '(JavaScript fixtures)', type: :controller do + include JavaScriptFixturesHelpers + + let(:admin) { create(:admin) } + let!(:abuse_report) { create(:abuse_report) } + let!(:abuse_report_with_short_message) { create(:abuse_report, message: 'SHORT MESSAGE') } + let!(:abuse_report_with_long_message) { create(:abuse_report, message: "LONG MESSAGE\n" * 50) } + + render_views + + before(:all) do + clean_frontend_fixtures('abuse_reports/') + end + + before do + sign_in(admin) + end + + it 'abuse_reports/abuse_reports_list.html' do + get :index + + expect(response).to be_successful + end +end diff --git a/spec/frontend/fixtures/admin_users.rb b/spec/frontend/fixtures/admin_users.rb new file mode 100644 index 00000000000..0209594dadc --- /dev/null +++ b/spec/frontend/fixtures/admin_users.rb @@ -0,0 +1,28 @@ +require 'spec_helper' + +describe Admin::UsersController, '(JavaScript fixtures)', type: :controller do + include StubENV + include JavaScriptFixturesHelpers + + let(:admin) { create(:admin) } + + before do + stub_env('IN_MEMORY_APPLICATION_SETTINGS', 'false') + sign_in(admin) + end + + render_views + + before(:all) do + clean_frontend_fixtures('admin/users') + end + + it 'admin/users/new_with_internal_user_regex.html' do + stub_application_setting(user_default_external: true) + stub_application_setting(user_default_internal_regex: '^(?:(?!\.ext@).)*$\r?') + + get :new + + expect(response).to be_successful + end +end diff --git a/spec/frontend/fixtures/application_settings.rb b/spec/frontend/fixtures/application_settings.rb new file mode 100644 index 00000000000..38a060580c1 --- /dev/null +++ b/spec/frontend/fixtures/application_settings.rb @@ -0,0 +1,33 @@ +require 'spec_helper' + +describe Admin::ApplicationSettingsController, '(JavaScript fixtures)', type: :controller do + include StubENV + include JavaScriptFixturesHelpers + + let(:admin) { create(:admin) } + let(:namespace) { create(:namespace, name: 'frontend-fixtures' )} + let(:project) { create(:project_empty_repo, namespace: namespace, path: 'application-settings') } + + before do + stub_env('IN_MEMORY_APPLICATION_SETTINGS', 'false') + sign_in(admin) + end + + render_views + + before(:all) do + clean_frontend_fixtures('application_settings/') + end + + after do + remove_repository(project) + end + + it 'application_settings/accounts_and_limit.html' do + stub_application_setting(user_default_external: false) + + get :show + + expect(response).to be_successful + end +end diff --git a/spec/frontend/fixtures/autocomplete_sources.rb b/spec/frontend/fixtures/autocomplete_sources.rb new file mode 100644 index 00000000000..9e04328e2b9 --- /dev/null +++ b/spec/frontend/fixtures/autocomplete_sources.rb @@ -0,0 +1,39 @@ +# frozen_string_literal: true + +require 'spec_helper' + +describe Projects::AutocompleteSourcesController, '(JavaScript fixtures)', type: :controller do + include JavaScriptFixturesHelpers + + set(:admin) { create(:admin) } + set(:group) { create(:group, name: 'frontend-fixtures') } + set(:project) { create(:project, namespace: group, path: 'autocomplete-sources-project') } + set(:issue) { create(:issue, project: project) } + + before(:all) do + clean_frontend_fixtures('autocomplete_sources/') + end + + before do + sign_in(admin) + end + + it 'autocomplete_sources/labels.json' do + issue.labels << create(:label, project: project, title: 'bug') + issue.labels << create(:label, project: project, title: 'critical') + + create(:label, project: project, title: 'feature') + create(:label, project: project, title: 'documentation') + + get :labels, + format: :json, + params: { + namespace_id: group.path, + project_id: project.path, + type: issue.class.name, + type_id: issue.id + } + + expect(response).to be_successful + end +end diff --git a/spec/frontend/fixtures/blob.rb b/spec/frontend/fixtures/blob.rb new file mode 100644 index 00000000000..ce5030efbf8 --- /dev/null +++ b/spec/frontend/fixtures/blob.rb @@ -0,0 +1,34 @@ +require 'spec_helper' + +describe Projects::BlobController, '(JavaScript fixtures)', type: :controller do + include JavaScriptFixturesHelpers + + let(:admin) { create(:admin) } + let(:namespace) { create(:namespace, name: 'frontend-fixtures' )} + let(:project) { create(:project, :repository, namespace: namespace, path: 'branches-project') } + + render_views + + before(:all) do + clean_frontend_fixtures('blob/') + end + + before do + sign_in(admin) + allow(SecureRandom).to receive(:hex).and_return('securerandomhex:thereisnospoon') + end + + after do + remove_repository(project) + end + + it 'blob/show.html' do + get(:show, params: { + namespace_id: project.namespace, + project_id: project, + id: 'add-ipython-files/files/ipython/basic.ipynb' + }) + + expect(response).to be_successful + end +end diff --git a/spec/frontend/fixtures/boards.rb b/spec/frontend/fixtures/boards.rb new file mode 100644 index 00000000000..f257d80390f --- /dev/null +++ b/spec/frontend/fixtures/boards.rb @@ -0,0 +1,28 @@ +require 'spec_helper' + +describe Projects::BoardsController, '(JavaScript fixtures)', type: :controller do + include JavaScriptFixturesHelpers + + let(:admin) { create(:admin) } + let(:namespace) { create(:namespace, name: 'frontend-fixtures' )} + let(:project) { create(:project, :repository, namespace: namespace, path: 'boards-project') } + + render_views + + before(:all) do + clean_frontend_fixtures('boards/') + end + + before do + sign_in(admin) + end + + it 'boards/show.html' do + get(:index, params: { + namespace_id: project.namespace, + project_id: project + }) + + expect(response).to be_successful + end +end diff --git a/spec/frontend/fixtures/branches.rb b/spec/frontend/fixtures/branches.rb new file mode 100644 index 00000000000..197fe42c52a --- /dev/null +++ b/spec/frontend/fixtures/branches.rb @@ -0,0 +1,32 @@ +require 'spec_helper' + +describe Projects::BranchesController, '(JavaScript fixtures)', type: :controller do + include JavaScriptFixturesHelpers + + let(:admin) { create(:admin) } + let(:namespace) { create(:namespace, name: 'frontend-fixtures' )} + let(:project) { create(:project, :repository, namespace: namespace, path: 'branches-project') } + + render_views + + before(:all) do + clean_frontend_fixtures('branches/') + end + + before do + sign_in(admin) + end + + after do + remove_repository(project) + end + + it 'branches/new_branch.html' do + get :new, params: { + namespace_id: project.namespace.to_param, + project_id: project + } + + expect(response).to be_successful + end +end diff --git a/spec/frontend/fixtures/clusters.rb b/spec/frontend/fixtures/clusters.rb new file mode 100644 index 00000000000..f15ef010807 --- /dev/null +++ b/spec/frontend/fixtures/clusters.rb @@ -0,0 +1,34 @@ +require 'spec_helper' + +describe Projects::ClustersController, '(JavaScript fixtures)', type: :controller do + include JavaScriptFixturesHelpers + + let(:admin) { create(:admin) } + let(:namespace) { create(:namespace, name: 'frontend-fixtures' )} + let(:project) { create(:project, :repository, namespace: namespace) } + let(:cluster) { create(:cluster, :provided_by_gcp, projects: [project]) } + + render_views + + before(:all) do + clean_frontend_fixtures('clusters/') + end + + before do + sign_in(admin) + end + + after do + remove_repository(project) + end + + it 'clusters/show_cluster.html' do + get :show, params: { + namespace_id: project.namespace.to_param, + project_id: project, + id: cluster + } + + expect(response).to be_successful + end +end diff --git a/spec/frontend/fixtures/commit.rb b/spec/frontend/fixtures/commit.rb new file mode 100644 index 00000000000..a328c455356 --- /dev/null +++ b/spec/frontend/fixtures/commit.rb @@ -0,0 +1,33 @@ +require 'spec_helper' + +describe Projects::CommitController, '(JavaScript fixtures)', type: :controller do + include JavaScriptFixturesHelpers + + set(:project) { create(:project, :repository) } + set(:user) { create(:user) } + let(:commit) { project.commit("master") } + + render_views + + before(:all) do + clean_frontend_fixtures('commit/') + end + + before do + project.add_maintainer(user) + sign_in(user) + allow(SecureRandom).to receive(:hex).and_return('securerandomhex:thereisnospoon') + end + + it 'commit/show.html' do + params = { + namespace_id: project.namespace, + project_id: project, + id: commit.id + } + + get :show, params: params + + expect(response).to be_successful + end +end diff --git a/spec/frontend/fixtures/deploy_keys.rb b/spec/frontend/fixtures/deploy_keys.rb new file mode 100644 index 00000000000..fca233c6f59 --- /dev/null +++ b/spec/frontend/fixtures/deploy_keys.rb @@ -0,0 +1,43 @@ +require 'spec_helper' + +describe Projects::DeployKeysController, '(JavaScript fixtures)', type: :controller do + include JavaScriptFixturesHelpers + + let(:admin) { create(:admin) } + let(:namespace) { create(:namespace, name: 'frontend-fixtures' )} + let(:project) { create(:project_empty_repo, namespace: namespace, path: 'todos-project') } + let(:project2) { create(:project, :internal)} + let(:project3) { create(:project, :internal)} + let(:project4) { create(:project, :internal)} + + before(:all) do + clean_frontend_fixtures('deploy_keys/') + end + + before do + sign_in(admin) + end + + after do + remove_repository(project) + end + + render_views + + it 'deploy_keys/keys.json' do + create(:rsa_deploy_key_2048, public: true) + project_key = create(:deploy_key, key: 'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQCdMHEHyhRjbhEZVddFn6lTWdgEy5Q6Bz4nwGB76xWZI5YT/1WJOMEW+sL5zYd31kk7sd3FJ5L9ft8zWMWrr/iWXQikC2cqZK24H1xy+ZUmrRuJD4qGAaIVoyyzBL+avL+lF8J5lg6YSw8gwJY/lX64/vnJHUlWw2n5BF8IFOWhiw== dummy@gitlab.com') + internal_key = create(:deploy_key, key: 'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQDNd/UJWhPrpb+b/G5oL109y57yKuCxE+WUGJGYaj7WQKsYRJmLYh1mgjrl+KVyfsWpq4ylOxIfFSnN9xBBFN8mlb0Fma5DC7YsSsibJr3MZ19ZNBprwNcdogET7aW9I0In7Wu5f2KqI6e5W/spJHCy4JVxzVMUvk6Myab0LnJ2iQ== dummy@gitlab.com') + create(:deploy_keys_project, project: project, deploy_key: project_key) + create(:deploy_keys_project, project: project2, deploy_key: internal_key) + create(:deploy_keys_project, project: project3, deploy_key: project_key) + create(:deploy_keys_project, project: project4, deploy_key: project_key) + + get :index, params: { + namespace_id: project.namespace.to_param, + project_id: project + }, format: :json + + expect(response).to be_successful + end +end diff --git a/spec/frontend/fixtures/groups.rb b/spec/frontend/fixtures/groups.rb new file mode 100644 index 00000000000..c1bb2d43332 --- /dev/null +++ b/spec/frontend/fixtures/groups.rb @@ -0,0 +1,35 @@ +require 'spec_helper' + +describe 'Groups (JavaScript fixtures)', type: :controller do + include JavaScriptFixturesHelpers + + let(:admin) { create(:admin) } + let(:group) { create(:group, name: 'frontend-fixtures-group', runners_token: 'runnerstoken:intabulasreferre')} + + render_views + + before(:all) do + clean_frontend_fixtures('groups/') + end + + before do + group.add_maintainer(admin) + sign_in(admin) + end + + describe GroupsController, '(JavaScript fixtures)', type: :controller do + it 'groups/edit.html' do + get :edit, params: { id: group } + + expect(response).to be_successful + end + end + + describe Groups::Settings::CiCdController, '(JavaScript fixtures)', type: :controller do + it 'groups/ci_cd_settings.html' do + get :show, params: { group_id: group } + + expect(response).to be_successful + end + end +end diff --git a/spec/frontend/fixtures/issues.rb b/spec/frontend/fixtures/issues.rb new file mode 100644 index 00000000000..b5eb38e0023 --- /dev/null +++ b/spec/frontend/fixtures/issues.rb @@ -0,0 +1,122 @@ +require 'spec_helper' + +describe Projects::IssuesController, '(JavaScript fixtures)', type: :controller do + include JavaScriptFixturesHelpers + + let(:admin) { create(:admin, feed_token: 'feedtoken:coldfeed') } + let(:namespace) { create(:namespace, name: 'frontend-fixtures' )} + let(:project) { create(:project_empty_repo, namespace: namespace, path: 'issues-project') } + + render_views + + before(:all) do + clean_frontend_fixtures('issues/') + end + + before do + sign_in(admin) + end + + after do + remove_repository(project) + end + + it 'issues/open-issue.html' do + render_issue(create(:issue, project: project)) + end + + it 'issues/closed-issue.html' do + render_issue(create(:closed_issue, project: project)) + end + + it 'issues/issue-with-task-list.html' do + issue = create(:issue, project: project, description: '- [ ] Task List Item') + render_issue(issue) + end + + it 'issues/issue_with_comment.html' do + issue = create(:issue, project: project) + create(:note, project: project, noteable: issue, note: '- [ ] Task List Item').save + render_issue(issue) + end + + it 'issues/issue_list.html' do + create(:issue, project: project) + + get :index, params: { + namespace_id: project.namespace.to_param, + project_id: project + } + + expect(response).to be_successful + end + + private + + def render_issue(issue) + get :show, params: { + namespace_id: project.namespace.to_param, + project_id: project, + id: issue.to_param + } + + expect(response).to be_successful + end +end + +describe API::Issues, '(JavaScript fixtures)', type: :request do + include ApiHelpers + include JavaScriptFixturesHelpers + + def get_related_merge_requests(project_id, issue_iid, user = nil) + get api("/projects/#{project_id}/issues/#{issue_iid}/related_merge_requests", user) + end + + def create_referencing_mr(user, project, issue) + attributes = { + author: user, + source_project: project, + target_project: project, + source_branch: "master", + target_branch: "test", + assignee: user, + description: "See #{issue.to_reference}" + } + create(:merge_request, attributes).tap do |merge_request| + create(:note, :system, project: issue.project, noteable: issue, author: user, note: merge_request.to_reference(full: true)) + end + end + + it 'issues/related_merge_requests.json' do + user = create(:user) + project = create(:project, :public, creator_id: user.id, namespace: user.namespace) + issue_title = 'foo' + issue_description = 'closed' + milestone = create(:milestone, title: '1.0.0', project: project) + issue = create :issue, + author: user, + assignees: [user], + project: project, + milestone: milestone, + created_at: generate(:past_time), + updated_at: 1.hour.ago, + title: issue_title, + description: issue_description + + project.add_reporter(user) + create_referencing_mr(user, project, issue) + + create(:merge_request, + :simple, + author: user, + source_project: project, + target_project: project, + description: "Some description") + project2 = create(:project, :public, creator_id: user.id, namespace: user.namespace) + create_referencing_mr(user, project2, issue).update!(head_pipeline: create(:ci_pipeline)) + + get_related_merge_requests(project.id, issue.iid, user) + + expect(response).to be_successful + end +end diff --git a/spec/frontend/fixtures/jobs.rb b/spec/frontend/fixtures/jobs.rb new file mode 100644 index 00000000000..a3a7759c85b --- /dev/null +++ b/spec/frontend/fixtures/jobs.rb @@ -0,0 +1,54 @@ +require 'spec_helper' + +describe Projects::JobsController, '(JavaScript fixtures)', type: :controller do + include JavaScriptFixturesHelpers + + let(:admin) { create(:admin) } + let(:namespace) { create(:namespace, name: 'frontend-fixtures' )} + let(:project) { create(:project, :repository, namespace: namespace, path: 'builds-project') } + let(:pipeline) { create(:ci_empty_pipeline, project: project, sha: project.commit.id) } + let!(:build_with_artifacts) { create(:ci_build, :success, :artifacts, :trace_artifact, pipeline: pipeline, stage: 'test', artifacts_expire_at: Time.now + 18.months) } + let!(:failed_build) { create(:ci_build, :failed, pipeline: pipeline, stage: 'build') } + let!(:pending_build) { create(:ci_build, :pending, pipeline: pipeline, stage: 'deploy') } + let!(:delayed_job) do + create(:ci_build, :scheduled, + pipeline: pipeline, + name: 'delayed job', + stage: 'test') + end + + render_views + + before(:all) do + clean_frontend_fixtures('builds/') + clean_frontend_fixtures('jobs/') + end + + before do + sign_in(admin) + end + + after do + remove_repository(project) + end + + it 'builds/build-with-artifacts.html' do + get :show, params: { + namespace_id: project.namespace.to_param, + project_id: project, + id: build_with_artifacts.to_param + } + + expect(response).to be_successful + end + + it 'jobs/delayed.json' do + get :show, params: { + namespace_id: project.namespace.to_param, + project_id: project, + id: delayed_job.to_param + }, format: :json + + expect(response).to be_successful + end +end diff --git a/spec/frontend/fixtures/labels.rb b/spec/frontend/fixtures/labels.rb new file mode 100644 index 00000000000..a312287970f --- /dev/null +++ b/spec/frontend/fixtures/labels.rb @@ -0,0 +1,58 @@ +require 'spec_helper' + +describe 'Labels (JavaScript fixtures)' do + include JavaScriptFixturesHelpers + + let(:admin) { create(:admin) } + let(:group) { create(:group, name: 'frontend-fixtures-group' )} + let(:project) { create(:project_empty_repo, namespace: group, path: 'labels-project') } + + let!(:project_label_bug) { create(:label, project: project, title: 'bug', color: '#FF0000') } + let!(:project_label_enhancement) { create(:label, project: project, title: 'enhancement', color: '#00FF00') } + let!(:project_label_feature) { create(:label, project: project, title: 'feature', color: '#0000FF') } + + let!(:group_label_roses) { create(:group_label, group: group, title: 'roses', color: '#FF0000') } + let!(:groub_label_space) { create(:group_label, group: group, title: 'some space', color: '#FFFFFF') } + let!(:groub_label_violets) { create(:group_label, group: group, title: 'violets', color: '#0000FF') } + + before(:all) do + clean_frontend_fixtures('labels/') + end + + after do + remove_repository(project) + end + + describe Groups::LabelsController, '(JavaScript fixtures)', type: :controller do + render_views + + before do + sign_in(admin) + end + + it 'labels/group_labels.json' do + get :index, params: { + group_id: group + }, format: 'json' + + expect(response).to be_successful + end + end + + describe Projects::LabelsController, '(JavaScript fixtures)', type: :controller do + render_views + + before do + sign_in(admin) + end + + it 'labels/project_labels.json' do + get :index, params: { + namespace_id: group, + project_id: project + }, format: 'json' + + expect(response).to be_successful + end + end +end diff --git a/spec/frontend/fixtures/merge_requests.rb b/spec/frontend/fixtures/merge_requests.rb new file mode 100644 index 00000000000..88706e96676 --- /dev/null +++ b/spec/frontend/fixtures/merge_requests.rb @@ -0,0 +1,134 @@ +require 'spec_helper' + +describe Projects::MergeRequestsController, '(JavaScript fixtures)', type: :controller do + include JavaScriptFixturesHelpers + + let(:admin) { create(:admin) } + let(:namespace) { create(:namespace, name: 'frontend-fixtures' )} + let(:project) { create(:project, :repository, namespace: namespace, path: 'merge-requests-project') } + let(:merge_request) { create(:merge_request, :with_diffs, source_project: project, target_project: project, description: '- [ ] Task List Item') } + let(:merged_merge_request) { create(:merge_request, :merged, source_project: project, target_project: project) } + let(:pipeline) do + create( + :ci_pipeline, + project: merge_request.source_project, + ref: merge_request.source_branch, + sha: merge_request.diff_head_sha + ) + end + let(:path) { "files/ruby/popen.rb" } + let(:position) do + Gitlab::Diff::Position.new( + old_path: path, + new_path: path, + old_line: nil, + new_line: 14, + diff_refs: merge_request.diff_refs + ) + end + + render_views + + before(:all) do + clean_frontend_fixtures('merge_requests/') + end + + before do + sign_in(admin) + allow(Discussion).to receive(:build_discussion_id).and_return(['discussionid:ceterumcenseo']) + end + + after do + remove_repository(project) + end + + it 'merge_requests/merge_request_of_current_user.html' do + merge_request.update(author: admin) + + render_merge_request(merge_request) + end + + it 'merge_requests/merge_request_with_task_list.html' do + create(:ci_build, :pending, pipeline: pipeline) + + render_merge_request(merge_request) + end + + it 'merge_requests/merged_merge_request.html' do + expect_next_instance_of(MergeRequest) do |merge_request| + allow(merge_request).to receive(:source_branch_exists?).and_return(true) + allow(merge_request).to receive(:can_remove_source_branch?).and_return(true) + end + render_merge_request(merged_merge_request) + end + + it 'merge_requests/diff_comment.html' do + create(:diff_note_on_merge_request, project: project, author: admin, position: position, noteable: merge_request) + create(:note_on_merge_request, author: admin, project: project, noteable: merge_request) + render_merge_request(merge_request) + end + + it 'merge_requests/merge_request_with_comment.html' do + create(:note_on_merge_request, author: admin, project: project, noteable: merge_request, note: '- [ ] Task List Item') + render_merge_request(merge_request) + end + + it 'merge_requests/discussions.json' do + create(:diff_note_on_merge_request, project: project, author: admin, position: position, noteable: merge_request) + render_discussions_json(merge_request) + end + + it 'merge_requests/diff_discussion.json' do + create(:diff_note_on_merge_request, project: project, author: admin, position: position, noteable: merge_request) + render_discussions_json(merge_request) + end + + it 'merge_requests/resolved_diff_discussion.json' do + note = create(:discussion_note_on_merge_request, :resolved, project: project, author: admin, position: position, noteable: merge_request) + create(:system_note, project: project, author: admin, noteable: merge_request, discussion_id: note.discussion.id) + + render_discussions_json(merge_request) + end + + context 'with image diff' do + let(:merge_request2) { create(:merge_request_with_diffs, :with_image_diffs, source_project: project, title: "Added images") } + let(:image_path) { "files/images/ee_repo_logo.png" } + let(:image_position) do + Gitlab::Diff::Position.new( + old_path: image_path, + new_path: image_path, + width: 100, + height: 100, + x: 1, + y: 1, + position_type: "image", + diff_refs: merge_request2.diff_refs + ) + end + + it 'merge_requests/image_diff_discussion.json' do + create(:diff_note_on_merge_request, project: project, noteable: merge_request2, position: image_position) + render_discussions_json(merge_request2) + end + end + + private + + def render_discussions_json(merge_request) + get :discussions, params: { + namespace_id: project.namespace.to_param, + project_id: project, + id: merge_request.to_param + }, format: :json + end + + def render_merge_request(merge_request) + get :show, params: { + namespace_id: project.namespace.to_param, + project_id: project, + id: merge_request.to_param + }, format: :html + + expect(response).to be_successful + end +end diff --git a/spec/frontend/fixtures/merge_requests_diffs.rb b/spec/frontend/fixtures/merge_requests_diffs.rb new file mode 100644 index 00000000000..b633a0495a6 --- /dev/null +++ b/spec/frontend/fixtures/merge_requests_diffs.rb @@ -0,0 +1,69 @@ +require 'spec_helper' + +describe Projects::MergeRequests::DiffsController, '(JavaScript fixtures)', type: :controller do + include JavaScriptFixturesHelpers + + let(:admin) { create(:admin) } + let(:namespace) { create(:namespace, name: 'frontend-fixtures' )} + let(:project) { create(:project, :repository, namespace: namespace, path: 'merge-requests-project') } + let(:merge_request) { create(:merge_request, :with_diffs, source_project: project, target_project: project, description: '- [ ] Task List Item') } + let(:path) { "files/ruby/popen.rb" } + let(:selected_commit) { merge_request.all_commits[0] } + let(:position) do + Gitlab::Diff::Position.new( + old_path: path, + new_path: path, + old_line: nil, + new_line: 14, + diff_refs: merge_request.diff_refs + ) + end + + render_views + + before(:all) do + clean_frontend_fixtures('merge_request_diffs/') + end + + before do + sign_in(admin) + end + + after do + remove_repository(project) + end + + it 'merge_request_diffs/with_commit.json' do + # Create a user that matches the selected commit author + # This is so that the "author" information will be populated + create(:user, email: selected_commit.author_email, name: selected_commit.author_name) + + render_merge_request(merge_request, commit_id: selected_commit.sha) + end + + it 'merge_request_diffs/inline_changes_tab_with_comments.json' do + create(:diff_note_on_merge_request, project: project, author: admin, position: position, noteable: merge_request) + create(:note_on_merge_request, author: admin, project: project, noteable: merge_request) + render_merge_request(merge_request) + end + + it 'merge_request_diffs/parallel_changes_tab_with_comments.json' do + create(:diff_note_on_merge_request, project: project, author: admin, position: position, noteable: merge_request) + create(:note_on_merge_request, author: admin, project: project, noteable: merge_request) + render_merge_request(merge_request, view: 'parallel') + end + + private + + def render_merge_request(merge_request, view: 'inline', **extra_params) + get :show, params: { + namespace_id: project.namespace.to_param, + project_id: project, + id: merge_request.to_param, + view: view, + **extra_params + }, format: :json + + expect(response).to be_successful + end +end diff --git a/spec/frontend/fixtures/pipeline_schedules.rb b/spec/frontend/fixtures/pipeline_schedules.rb new file mode 100644 index 00000000000..a70091a3919 --- /dev/null +++ b/spec/frontend/fixtures/pipeline_schedules.rb @@ -0,0 +1,43 @@ +require 'spec_helper' + +describe Projects::PipelineSchedulesController, '(JavaScript fixtures)', type: :controller do + include JavaScriptFixturesHelpers + + let(:admin) { create(:admin) } + let(:namespace) { create(:namespace, name: 'frontend-fixtures' )} + let(:project) { create(:project, :public, :repository) } + let!(:pipeline_schedule) { create(:ci_pipeline_schedule, project: project, owner: admin) } + let!(:pipeline_schedule_populated) { create(:ci_pipeline_schedule, project: project, owner: admin) } + let!(:pipeline_schedule_variable1) { create(:ci_pipeline_schedule_variable, key: 'foo', value: 'foovalue', pipeline_schedule: pipeline_schedule_populated) } + let!(:pipeline_schedule_variable2) { create(:ci_pipeline_schedule_variable, key: 'bar', value: 'barvalue', pipeline_schedule: pipeline_schedule_populated) } + + render_views + + before(:all) do + clean_frontend_fixtures('pipeline_schedules/') + end + + before do + sign_in(admin) + end + + it 'pipeline_schedules/edit.html' do + get :edit, params: { + namespace_id: project.namespace.to_param, + project_id: project, + id: pipeline_schedule.id + } + + expect(response).to be_successful + end + + it 'pipeline_schedules/edit_with_variables.html' do + get :edit, params: { + namespace_id: project.namespace.to_param, + project_id: project, + id: pipeline_schedule_populated.id + } + + expect(response).to be_successful + end +end diff --git a/spec/frontend/fixtures/pipelines.rb b/spec/frontend/fixtures/pipelines.rb new file mode 100644 index 00000000000..ed57eb0aa80 --- /dev/null +++ b/spec/frontend/fixtures/pipelines.rb @@ -0,0 +1,34 @@ +require 'spec_helper' + +describe Projects::PipelinesController, '(JavaScript fixtures)', type: :controller do + include JavaScriptFixturesHelpers + + let(:admin) { create(:admin) } + let(:namespace) { create(:namespace, name: 'frontend-fixtures' )} + let(:project) { create(:project, :repository, namespace: namespace, path: 'pipelines-project') } + let(:commit) { create(:commit, project: project) } + let(:commit_without_author) { RepoHelpers.another_sample_commit } + let!(:user) { create(:user, developer_projects: [project], email: commit.author_email) } + let!(:pipeline) { create(:ci_pipeline, project: project, sha: commit.id, user: user) } + let!(:pipeline_without_author) { create(:ci_pipeline, project: project, sha: commit_without_author.id) } + let!(:pipeline_without_commit) { create(:ci_pipeline, project: project, sha: '0000') } + + render_views + + before(:all) do + clean_frontend_fixtures('pipelines/') + end + + before do + sign_in(admin) + end + + it 'pipelines/pipelines.json' do + get :index, params: { + namespace_id: namespace, + project_id: project + }, format: :json + + expect(response).to be_successful + end +end diff --git a/spec/frontend/fixtures/projects.rb b/spec/frontend/fixtures/projects.rb new file mode 100644 index 00000000000..b6c29003e57 --- /dev/null +++ b/spec/frontend/fixtures/projects.rb @@ -0,0 +1,83 @@ +require 'spec_helper' + +describe 'Projects (JavaScript fixtures)', type: :controller do + include JavaScriptFixturesHelpers + + runners_token = 'runnerstoken:intabulasreferre' + + let(:admin) { create(:admin) } + let(:namespace) { create(:namespace, name: 'frontend-fixtures' )} + let(:project) { create(:project, namespace: namespace, path: 'builds-project', runners_token: runners_token) } + let(:project_with_repo) { create(:project, :repository, description: 'Code and stuff') } + let(:project_variable_populated) { create(:project, namespace: namespace, path: 'builds-project2', runners_token: runners_token) } + + render_views + + before(:all) do + clean_frontend_fixtures('projects/') + end + + before do + stub_licensed_features(variable_environment_scope: true) + + project.add_maintainer(admin) + sign_in(admin) + allow(SecureRandom).to receive(:hex).and_return('securerandomhex:thereisnospoon') + end + + after do + remove_repository(project) + end + + describe ProjectsController, '(JavaScript fixtures)', type: :controller do + it 'projects/dashboard.html' do + get :show, params: { + namespace_id: project.namespace.to_param, + id: project + } + + expect(response).to be_successful + end + + it 'projects/overview.html' do + get :show, params: { + namespace_id: project_with_repo.namespace.to_param, + id: project_with_repo + } + + expect(response).to be_successful + end + + it 'projects/edit.html' do + get :edit, params: { + namespace_id: project.namespace.to_param, + id: project + } + + expect(response).to be_successful + end + end + + describe Projects::Settings::CiCdController, '(JavaScript fixtures)', type: :controller do + it 'projects/ci_cd_settings.html' do + get :show, params: { + namespace_id: project.namespace.to_param, + project_id: project + } + + expect(response).to be_successful + end + + it 'projects/ci_cd_settings_with_variables.html' do + create(:ci_variable, project: project_variable_populated) + create(:ci_variable, project: project_variable_populated) + + get :show, params: { + namespace_id: project_variable_populated.namespace.to_param, + project_id: project_variable_populated + } + + expect(response).to be_successful + end + end +end diff --git a/spec/frontend/fixtures/prometheus_service.rb b/spec/frontend/fixtures/prometheus_service.rb new file mode 100644 index 00000000000..93ee81120d7 --- /dev/null +++ b/spec/frontend/fixtures/prometheus_service.rb @@ -0,0 +1,34 @@ +require 'spec_helper' + +describe Projects::ServicesController, '(JavaScript fixtures)', type: :controller do + include JavaScriptFixturesHelpers + + let(:admin) { create(:admin) } + let(:namespace) { create(:namespace, name: 'frontend-fixtures' )} + let(:project) { create(:project_empty_repo, namespace: namespace, path: 'services-project') } + let!(:service) { create(:prometheus_service, project: project) } + + render_views + + before(:all) do + clean_frontend_fixtures('services/prometheus') + end + + before do + sign_in(admin) + end + + after do + remove_repository(project) + end + + it 'services/prometheus/prometheus_service.html' do + get :edit, params: { + namespace_id: namespace, + project_id: project, + id: service.to_param + } + + expect(response).to be_successful + end +end diff --git a/spec/frontend/fixtures/raw.rb b/spec/frontend/fixtures/raw.rb new file mode 100644 index 00000000000..801c80a0112 --- /dev/null +++ b/spec/frontend/fixtures/raw.rb @@ -0,0 +1,39 @@ +require 'spec_helper' + +describe 'Raw files', '(JavaScript fixtures)' do + include JavaScriptFixturesHelpers + + let(:namespace) { create(:namespace, name: 'frontend-fixtures' )} + let(:project) { create(:project, :repository, namespace: namespace, path: 'raw-project') } + let(:response) { @blob.data.force_encoding('UTF-8') } + + before(:all) do + clean_frontend_fixtures('blob/balsamiq/') + clean_frontend_fixtures('blob/notebook/') + clean_frontend_fixtures('blob/pdf/') + end + + after do + remove_repository(project) + end + + it 'blob/balsamiq/test.bmpr' do + @blob = project.repository.blob_at('b89b56d79', 'files/images/balsamiq.bmpr') + end + + it 'blob/notebook/basic.json' do + @blob = project.repository.blob_at('6d85bb69', 'files/ipython/basic.ipynb') + end + + it 'blob/notebook/worksheets.json' do + @blob = project.repository.blob_at('6d85bb69', 'files/ipython/worksheets.ipynb') + end + + it 'blob/notebook/math.json' do + @blob = project.repository.blob_at('93ee732', 'files/ipython/math.ipynb') + end + + it 'blob/pdf/test.pdf' do + @blob = project.repository.blob_at('e774ebd33', 'files/pdf/test.pdf') + end +end diff --git a/spec/frontend/fixtures/search.rb b/spec/frontend/fixtures/search.rb new file mode 100644 index 00000000000..c26c6998ae9 --- /dev/null +++ b/spec/frontend/fixtures/search.rb @@ -0,0 +1,17 @@ +require 'spec_helper' + +describe SearchController, '(JavaScript fixtures)', type: :controller do + include JavaScriptFixturesHelpers + + render_views + + before(:all) do + clean_frontend_fixtures('search/') + end + + it 'search/show.html' do + get :show + + expect(response).to be_successful + end +end diff --git a/spec/frontend/fixtures/services.rb b/spec/frontend/fixtures/services.rb new file mode 100644 index 00000000000..ee1e088f158 --- /dev/null +++ b/spec/frontend/fixtures/services.rb @@ -0,0 +1,34 @@ +require 'spec_helper' + +describe Projects::ServicesController, '(JavaScript fixtures)', type: :controller do + include JavaScriptFixturesHelpers + + let(:admin) { create(:admin) } + let(:namespace) { create(:namespace, name: 'frontend-fixtures' )} + let(:project) { create(:project_empty_repo, namespace: namespace, path: 'services-project') } + let!(:service) { create(:custom_issue_tracker_service, project: project, title: 'Custom Issue Tracker') } + + render_views + + before(:all) do + clean_frontend_fixtures('services/') + end + + before do + sign_in(admin) + end + + after do + remove_repository(project) + end + + it 'services/edit_service.html' do + get :edit, params: { + namespace_id: namespace, + project_id: project, + id: service.to_param + } + + expect(response).to be_successful + end +end diff --git a/spec/frontend/fixtures/sessions.rb b/spec/frontend/fixtures/sessions.rb new file mode 100644 index 00000000000..18574ea06b5 --- /dev/null +++ b/spec/frontend/fixtures/sessions.rb @@ -0,0 +1,25 @@ +require 'spec_helper' + +describe 'Sessions (JavaScript fixtures)' do + include JavaScriptFixturesHelpers + + before(:all) do + clean_frontend_fixtures('sessions/') + end + + describe SessionsController, '(JavaScript fixtures)', type: :controller do + include DeviseHelpers + + render_views + + before do + set_devise_mapping(context: @request) + end + + it 'sessions/new.html' do + get :new + + expect(response).to be_successful + end + end +end diff --git a/spec/frontend/fixtures/snippet.rb b/spec/frontend/fixtures/snippet.rb new file mode 100644 index 00000000000..23bcdb47ac6 --- /dev/null +++ b/spec/frontend/fixtures/snippet.rb @@ -0,0 +1,33 @@ +require 'spec_helper' + +describe SnippetsController, '(JavaScript fixtures)', type: :controller do + include JavaScriptFixturesHelpers + + let(:admin) { create(:admin) } + let(:namespace) { create(:namespace, name: 'frontend-fixtures' )} + let(:project) { create(:project, :repository, namespace: namespace, path: 'branches-project') } + let(:snippet) { create(:personal_snippet, title: 'snippet.md', content: '# snippet', file_name: 'snippet.md', author: admin) } + + render_views + + before(:all) do + clean_frontend_fixtures('snippets/') + end + + before do + sign_in(admin) + allow(Discussion).to receive(:build_discussion_id).and_return(['discussionid:ceterumcenseo']) + end + + after do + remove_repository(project) + end + + it 'snippets/show.html' do + create(:discussion_note_on_snippet, noteable: snippet, project: project, author: admin, note: '- [ ] Task List Item') + + get(:show, params: { id: snippet.to_param }) + + expect(response).to be_successful + end +end diff --git a/spec/frontend/fixtures/static/README.md b/spec/frontend/fixtures/static/README.md new file mode 100644 index 00000000000..011601d0df8 --- /dev/null +++ b/spec/frontend/fixtures/static/README.md @@ -0,0 +1,3 @@ +# Please do not add new files here! + +Instead use a Ruby file in the fixtures root directory (`spec/frontend/fixtures/`). diff --git a/spec/frontend/fixtures/static/ajax_loading_spinner.html b/spec/frontend/fixtures/static/ajax_loading_spinner.html new file mode 100644 index 00000000000..0e1ebb32b1c --- /dev/null +++ b/spec/frontend/fixtures/static/ajax_loading_spinner.html @@ -0,0 +1,3 @@ + + + diff --git a/spec/frontend/fixtures/static/balsamiq_viewer.html b/spec/frontend/fixtures/static/balsamiq_viewer.html new file mode 100644 index 00000000000..cdd723d1a84 --- /dev/null +++ b/spec/frontend/fixtures/static/balsamiq_viewer.html @@ -0,0 +1 @@ +
diff --git a/spec/frontend/fixtures/static/create_item_dropdown.html b/spec/frontend/fixtures/static/create_item_dropdown.html new file mode 100644 index 00000000000..d2d38370092 --- /dev/null +++ b/spec/frontend/fixtures/static/create_item_dropdown.html @@ -0,0 +1,11 @@ +
+ +
diff --git a/spec/frontend/fixtures/static/environments/table.html b/spec/frontend/fixtures/static/environments/table.html new file mode 100644 index 00000000000..417af564ff1 --- /dev/null +++ b/spec/frontend/fixtures/static/environments/table.html @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + +
EnvironmentLast deploymentJobCommit
diff --git a/spec/frontend/fixtures/static/event_filter.html b/spec/frontend/fixtures/static/event_filter.html new file mode 100644 index 00000000000..8e9b6fb1b5c --- /dev/null +++ b/spec/frontend/fixtures/static/event_filter.html @@ -0,0 +1,44 @@ + diff --git a/spec/frontend/fixtures/static/gl_dropdown.html b/spec/frontend/fixtures/static/gl_dropdown.html new file mode 100644 index 00000000000..08f6738414e --- /dev/null +++ b/spec/frontend/fixtures/static/gl_dropdown.html @@ -0,0 +1,26 @@ +
+ +
diff --git a/spec/frontend/fixtures/static/gl_field_errors.html b/spec/frontend/fixtures/static/gl_field_errors.html new file mode 100644 index 00000000000..f8470e02b7c --- /dev/null +++ b/spec/frontend/fixtures/static/gl_field_errors.html @@ -0,0 +1,22 @@ +
+
+Text +
+
+Email +
+
+Password +
+
+Alphanumeric +
+
+ +
+
+Custom, do not validate +
+
+Submit +
diff --git a/spec/frontend/fixtures/static/images/green_box.png b/spec/frontend/fixtures/static/images/green_box.png new file mode 100644 index 00000000000..cd1ff9f9ade Binary files /dev/null and b/spec/frontend/fixtures/static/images/green_box.png differ diff --git a/spec/frontend/fixtures/static/images/one_white_pixel.png b/spec/frontend/fixtures/static/images/one_white_pixel.png new file mode 100644 index 00000000000..073fcf40a18 Binary files /dev/null and b/spec/frontend/fixtures/static/images/one_white_pixel.png differ diff --git a/spec/frontend/fixtures/static/images/red_box.png b/spec/frontend/fixtures/static/images/red_box.png new file mode 100644 index 00000000000..73b2927da0f Binary files /dev/null and b/spec/frontend/fixtures/static/images/red_box.png differ diff --git a/spec/frontend/fixtures/static/issuable_filter.html b/spec/frontend/fixtures/static/issuable_filter.html new file mode 100644 index 00000000000..06b70fb43f1 --- /dev/null +++ b/spec/frontend/fixtures/static/issuable_filter.html @@ -0,0 +1,9 @@ +
+ + + + + + + +
diff --git a/spec/frontend/fixtures/static/issue_sidebar_label.html b/spec/frontend/fixtures/static/issue_sidebar_label.html new file mode 100644 index 00000000000..ec8fb30f219 --- /dev/null +++ b/spec/frontend/fixtures/static/issue_sidebar_label.html @@ -0,0 +1,26 @@ +
+ + + +
diff --git a/spec/frontend/fixtures/static/line_highlighter.html b/spec/frontend/fixtures/static/line_highlighter.html new file mode 100644 index 00000000000..897a25d6760 --- /dev/null +++ b/spec/frontend/fixtures/static/line_highlighter.html @@ -0,0 +1,107 @@ +
+
+ +
Line 1Line 2Line 3Line 4Line 5Line 6Line 7Line 8Line 9Line 10Line 11Line 12Line 13Line 14Line 15Line 16Line 17Line 18Line 19Line 20Line 21Line 22Line 23Line 24Line 25
+
+
diff --git a/spec/frontend/fixtures/static/linked_tabs.html b/spec/frontend/fixtures/static/linked_tabs.html new file mode 100644 index 00000000000..c25463bf1db --- /dev/null +++ b/spec/frontend/fixtures/static/linked_tabs.html @@ -0,0 +1,20 @@ + +
+
+Tab 1 Content +
+
+Tab 2 Content +
+
diff --git a/spec/frontend/fixtures/static/merge_requests_show.html b/spec/frontend/fixtures/static/merge_requests_show.html new file mode 100644 index 00000000000..87e36c9f315 --- /dev/null +++ b/spec/frontend/fixtures/static/merge_requests_show.html @@ -0,0 +1,15 @@ + +
+
+
+
    +
  • + +Task List Item +
  • +
+ +
+
+
+
diff --git a/spec/frontend/fixtures/static/mini_dropdown_graph.html b/spec/frontend/fixtures/static/mini_dropdown_graph.html new file mode 100644 index 00000000000..cd0b8dec3fc --- /dev/null +++ b/spec/frontend/fixtures/static/mini_dropdown_graph.html @@ -0,0 +1,13 @@ + diff --git a/spec/frontend/fixtures/static/notebook_viewer.html b/spec/frontend/fixtures/static/notebook_viewer.html new file mode 100644 index 00000000000..4bbb7bf1094 --- /dev/null +++ b/spec/frontend/fixtures/static/notebook_viewer.html @@ -0,0 +1 @@ +
diff --git a/spec/frontend/fixtures/static/oauth_remember_me.html b/spec/frontend/fixtures/static/oauth_remember_me.html new file mode 100644 index 00000000000..9ba1ffc72fe --- /dev/null +++ b/spec/frontend/fixtures/static/oauth_remember_me.html @@ -0,0 +1,6 @@ +
+ + + + +
diff --git a/spec/frontend/fixtures/static/pdf_viewer.html b/spec/frontend/fixtures/static/pdf_viewer.html new file mode 100644 index 00000000000..350d35a262f --- /dev/null +++ b/spec/frontend/fixtures/static/pdf_viewer.html @@ -0,0 +1 @@ +
diff --git a/spec/frontend/fixtures/static/pipeline_graph.html b/spec/frontend/fixtures/static/pipeline_graph.html new file mode 100644 index 00000000000..422372bb7d5 --- /dev/null +++ b/spec/frontend/fixtures/static/pipeline_graph.html @@ -0,0 +1,24 @@ +
+ +
diff --git a/spec/frontend/fixtures/static/pipelines.html b/spec/frontend/fixtures/static/pipelines.html new file mode 100644 index 00000000000..42333f94f2f --- /dev/null +++ b/spec/frontend/fixtures/static/pipelines.html @@ -0,0 +1,3 @@ +
+
+
diff --git a/spec/frontend/fixtures/static/project_select_combo_button.html b/spec/frontend/fixtures/static/project_select_combo_button.html new file mode 100644 index 00000000000..50c826051c0 --- /dev/null +++ b/spec/frontend/fixtures/static/project_select_combo_button.html @@ -0,0 +1,9 @@ +
+ + + + + + + +
diff --git a/spec/frontend/fixtures/static/projects.json b/spec/frontend/fixtures/static/projects.json new file mode 100644 index 00000000000..68a150f602a --- /dev/null +++ b/spec/frontend/fixtures/static/projects.json @@ -0,0 +1,445 @@ +[{ + "id": 9, + "description": "", + "default_branch": null, + "tag_list": [], + "public": true, + "archived": false, + "visibility_level": 20, + "ssh_url_to_repo": "phil@localhost:root/test.git", + "http_url_to_repo": "http://localhost:3000/root/test.git", + "web_url": "http://localhost:3000/root/test", + "owner": { + "name": "Administrator", + "username": "root", + "id": 1, + "state": "active", + "avatar_url": "https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80\u0026d=identicon", + "web_url": "http://localhost:3000/u/root" + }, + "name": "test", + "name_with_namespace": "Administrator / test", + "path": "test", + "path_with_namespace": "root/test", + "issues_enabled": true, + "merge_requests_enabled": true, + "wiki_enabled": true, + "builds_enabled": true, + "snippets_enabled": false, + "created_at": "2016-01-14T19:08:05.364Z", + "last_activity_at": "2016-01-14T19:08:07.418Z", + "shared_runners_enabled": true, + "creator_id": 1, + "namespace": { + "id": 1, + "name": "root", + "path": "root", + "owner_id": 1, + "created_at": "2016-01-13T20:19:44.439Z", + "updated_at": "2016-01-13T20:19:44.439Z", + "description": "", + "avatar": null + }, + "avatar_url": null, + "star_count": 0, + "forks_count": 0, + "only_allow_merge_if_pipeline_succeeds": false, + "open_issues_count": 0, + "permissions": { + "project_access": null, + "group_access": null + } +}, { + "id": 8, + "description": "Voluptatem quae nulla eius numquam ullam voluptatibus quia modi.", + "default_branch": "master", + "tag_list": [], + "public": false, + "archived": false, + "visibility_level": 0, + "ssh_url_to_repo": "phil@localhost:h5bp/html5-boilerplate.git", + "http_url_to_repo": "http://localhost:3000/h5bp/html5-boilerplate.git", + "web_url": "http://localhost:3000/h5bp/html5-boilerplate", + "name": "Html5 Boilerplate", + "name_with_namespace": "H5bp / Html5 Boilerplate", + "path": "html5-boilerplate", + "path_with_namespace": "h5bp/html5-boilerplate", + "issues_enabled": true, + "merge_requests_enabled": true, + "wiki_enabled": true, + "builds_enabled": true, + "snippets_enabled": false, + "created_at": "2016-01-13T20:19:57.525Z", + "last_activity_at": "2016-01-13T20:27:57.280Z", + "shared_runners_enabled": true, + "creator_id": 1, + "namespace": { + "id": 5, + "name": "H5bp", + "path": "h5bp", + "owner_id": null, + "created_at": "2016-01-13T20:19:57.239Z", + "updated_at": "2016-01-13T20:19:57.239Z", + "description": "Tempore accusantium possimus aut libero.", + "avatar": { + "url": null + } + }, + "avatar_url": null, + "star_count": 0, + "forks_count": 0, + "only_allow_merge_if_pipeline_succeeds": false, + "open_issues_count": 5, + "permissions": { + "project_access": { + "access_level": 10, + "notification_level": 3 + }, + "group_access": { + "access_level": 50, + "notification_level": 3 + } + } +}, { + "id": 7, + "description": "Modi odio mollitia dolorem qui.", + "default_branch": "master", + "tag_list": [], + "public": false, + "archived": false, + "visibility_level": 0, + "ssh_url_to_repo": "phil@localhost:twitter/typeahead-js.git", + "http_url_to_repo": "http://localhost:3000/twitter/typeahead-js.git", + "web_url": "http://localhost:3000/twitter/typeahead-js", + "name": "Typeahead.Js", + "name_with_namespace": "Twitter / Typeahead.Js", + "path": "typeahead-js", + "path_with_namespace": "twitter/typeahead-js", + "issues_enabled": true, + "merge_requests_enabled": true, + "wiki_enabled": true, + "builds_enabled": true, + "snippets_enabled": false, + "created_at": "2016-01-13T20:19:56.212Z", + "last_activity_at": "2016-01-13T20:27:51.496Z", + "shared_runners_enabled": true, + "creator_id": 1, + "namespace": { + "id": 4, + "name": "Twitter", + "path": "twitter", + "owner_id": null, + "created_at": "2016-01-13T20:19:54.480Z", + "updated_at": "2016-01-13T20:19:54.480Z", + "description": "Id voluptatem ipsa maiores omnis repudiandae et et.", + "avatar": { + "url": null + } + }, + "avatar_url": null, + "star_count": 0, + "forks_count": 0, + "only_allow_merge_if_pipeline_succeeds": true, + "open_issues_count": 4, + "permissions": { + "project_access": null, + "group_access": { + "access_level": 10, + "notification_level": 3 + } + } +}, { + "id": 6, + "description": "Omnis asperiores ipsa et beatae quidem necessitatibus quia.", + "default_branch": "master", + "tag_list": [], + "public": true, + "archived": false, + "visibility_level": 20, + "ssh_url_to_repo": "phil@localhost:twitter/flight.git", + "http_url_to_repo": "http://localhost:3000/twitter/flight.git", + "web_url": "http://localhost:3000/twitter/flight", + "name": "Flight", + "name_with_namespace": "Twitter / Flight", + "path": "flight", + "path_with_namespace": "twitter/flight", + "issues_enabled": true, + "merge_requests_enabled": true, + "wiki_enabled": true, + "builds_enabled": true, + "snippets_enabled": false, + "created_at": "2016-01-13T20:19:54.754Z", + "last_activity_at": "2016-01-13T20:27:50.502Z", + "shared_runners_enabled": true, + "creator_id": 1, + "namespace": { + "id": 4, + "name": "Twitter", + "path": "twitter", + "owner_id": null, + "created_at": "2016-01-13T20:19:54.480Z", + "updated_at": "2016-01-13T20:19:54.480Z", + "description": "Id voluptatem ipsa maiores omnis repudiandae et et.", + "avatar": { + "url": null + } + }, + "avatar_url": null, + "star_count": 0, + "forks_count": 0, + "only_allow_merge_if_pipeline_succeeds": true, + "open_issues_count": 4, + "permissions": { + "project_access": null, + "group_access": { + "access_level": 10, + "notification_level": 3 + } + } +}, { + "id": 5, + "description": "Voluptatem commodi voluptate placeat architecto beatae illum dolores fugiat.", + "default_branch": "master", + "tag_list": [], + "public": false, + "archived": false, + "visibility_level": 0, + "ssh_url_to_repo": "phil@localhost:gitlab-org/gitlab-test.git", + "http_url_to_repo": "http://localhost:3000/gitlab-org/gitlab-test.git", + "web_url": "http://localhost:3000/gitlab-org/gitlab-test", + "name": "Gitlab Test", + "name_with_namespace": "Gitlab Org / Gitlab Test", + "path": "gitlab-test", + "path_with_namespace": "gitlab-org/gitlab-test", + "issues_enabled": true, + "merge_requests_enabled": true, + "wiki_enabled": true, + "builds_enabled": true, + "snippets_enabled": false, + "created_at": "2016-01-13T20:19:53.202Z", + "last_activity_at": "2016-01-13T20:27:41.626Z", + "shared_runners_enabled": true, + "creator_id": 1, + "namespace": { + "id": 3, + "name": "Gitlab Org", + "path": "gitlab-org", + "owner_id": null, + "created_at": "2016-01-13T20:19:48.851Z", + "updated_at": "2016-01-13T20:19:48.851Z", + "description": "Magni mollitia quod quidem soluta nesciunt impedit.", + "avatar": { + "url": null + } + }, + "avatar_url": null, + "star_count": 0, + "forks_count": 0, + "only_allow_merge_if_pipeline_succeeds": false, + "open_issues_count": 5, + "permissions": { + "project_access": null, + "group_access": { + "access_level": 50, + "notification_level": 3 + } + } +}, { + "id": 4, + "description": "Aut molestias quas est ut aperiam officia quod libero.", + "default_branch": "master", + "tag_list": [], + "public": true, + "archived": false, + "visibility_level": 20, + "ssh_url_to_repo": "phil@localhost:gitlab-org/gitlab-shell.git", + "http_url_to_repo": "http://localhost:3000/gitlab-org/gitlab-shell.git", + "web_url": "http://localhost:3000/gitlab-org/gitlab-shell", + "name": "Gitlab Shell", + "name_with_namespace": "Gitlab Org / Gitlab Shell", + "path": "gitlab-shell", + "path_with_namespace": "gitlab-org/gitlab-shell", + "issues_enabled": true, + "merge_requests_enabled": true, + "wiki_enabled": true, + "builds_enabled": true, + "snippets_enabled": false, + "created_at": "2016-01-13T20:19:51.882Z", + "last_activity_at": "2016-01-13T20:27:35.678Z", + "shared_runners_enabled": true, + "creator_id": 1, + "namespace": { + "id": 3, + "name": "Gitlab Org", + "path": "gitlab-org", + "owner_id": null, + "created_at": "2016-01-13T20:19:48.851Z", + "updated_at": "2016-01-13T20:19:48.851Z", + "description": "Magni mollitia quod quidem soluta nesciunt impedit.", + "avatar": { + "url": null + } + }, + "avatar_url": null, + "star_count": 0, + "forks_count": 0, + "only_allow_merge_if_pipeline_succeeds": false, + "open_issues_count": 5, + "permissions": { + "project_access": { + "access_level": 20, + "notification_level": 3 + }, + "group_access": { + "access_level": 50, + "notification_level": 3 + } + } +}, { + "id": 3, + "description": "Excepturi molestiae quia repellendus omnis est illo illum eligendi.", + "default_branch": "master", + "tag_list": [], + "public": true, + "archived": false, + "visibility_level": 20, + "ssh_url_to_repo": "phil@localhost:gitlab-org/gitlab-ci.git", + "http_url_to_repo": "http://localhost:3000/gitlab-org/gitlab-ci.git", + "web_url": "http://localhost:3000/gitlab-org/gitlab-ci", + "name": "Gitlab Ci", + "name_with_namespace": "Gitlab Org / Gitlab Ci", + "path": "gitlab-ci", + "path_with_namespace": "gitlab-org/gitlab-ci", + "issues_enabled": true, + "merge_requests_enabled": true, + "wiki_enabled": true, + "builds_enabled": true, + "snippets_enabled": false, + "created_at": "2016-01-13T20:19:50.346Z", + "last_activity_at": "2016-01-13T20:27:30.115Z", + "shared_runners_enabled": true, + "creator_id": 1, + "namespace": { + "id": 3, + "name": "Gitlab Org", + "path": "gitlab-org", + "owner_id": null, + "created_at": "2016-01-13T20:19:48.851Z", + "updated_at": "2016-01-13T20:19:48.851Z", + "description": "Magni mollitia quod quidem soluta nesciunt impedit.", + "avatar": { + "url": null + } + }, + "avatar_url": null, + "star_count": 0, + "forks_count": 0, + "only_allow_merge_if_pipeline_succeeds": false, + "open_issues_count": 3, + "permissions": { + "project_access": null, + "group_access": { + "access_level": 50, + "notification_level": 3 + } + } +}, { + "id": 2, + "description": "Adipisci quaerat dignissimos enim sed ipsam dolorem quia.", + "default_branch": "master", + "tag_list": [], + "public": false, + "archived": false, + "visibility_level": 10, + "ssh_url_to_repo": "phil@localhost:gitlab-org/gitlab-ce.git", + "http_url_to_repo": "http://localhost:3000/gitlab-org/gitlab-ce.git", + "web_url": "http://localhost:3000/gitlab-org/gitlab-ce", + "name": "Gitlab Ce", + "name_with_namespace": "Gitlab Org / Gitlab Ce", + "path": "gitlab-ce", + "path_with_namespace": "gitlab-org/gitlab-ce", + "issues_enabled": true, + "merge_requests_enabled": true, + "wiki_enabled": true, + "builds_enabled": true, + "snippets_enabled": false, + "created_at": "2016-01-13T20:19:49.065Z", + "last_activity_at": "2016-01-13T20:26:58.454Z", + "shared_runners_enabled": true, + "creator_id": 1, + "namespace": { + "id": 3, + "name": "Gitlab Org", + "path": "gitlab-org", + "owner_id": null, + "created_at": "2016-01-13T20:19:48.851Z", + "updated_at": "2016-01-13T20:19:48.851Z", + "description": "Magni mollitia quod quidem soluta nesciunt impedit.", + "avatar": { + "url": null + } + }, + "avatar_url": null, + "star_count": 0, + "forks_count": 0, + "only_allow_merge_if_pipeline_succeeds": false, + "open_issues_count": 5, + "permissions": { + "project_access": { + "access_level": 30, + "notification_level": 3 + }, + "group_access": { + "access_level": 50, + "notification_level": 3 + } + } +}, { + "id": 1, + "description": "Vel voluptatem maxime saepe ex quia.", + "default_branch": "master", + "tag_list": [], + "public": false, + "archived": false, + "visibility_level": 0, + "ssh_url_to_repo": "phil@localhost:documentcloud/underscore.git", + "http_url_to_repo": "http://localhost:3000/documentcloud/underscore.git", + "web_url": "http://localhost:3000/documentcloud/underscore", + "name": "Underscore", + "name_with_namespace": "Documentcloud / Underscore", + "path": "underscore", + "path_with_namespace": "documentcloud/underscore", + "issues_enabled": true, + "merge_requests_enabled": true, + "wiki_enabled": true, + "builds_enabled": true, + "snippets_enabled": false, + "created_at": "2016-01-13T20:19:45.862Z", + "last_activity_at": "2016-01-13T20:25:03.106Z", + "shared_runners_enabled": true, + "creator_id": 1, + "namespace": { + "id": 2, + "name": "Documentcloud", + "path": "documentcloud", + "owner_id": null, + "created_at": "2016-01-13T20:19:44.464Z", + "updated_at": "2016-01-13T20:19:44.464Z", + "description": "Aut impedit perferendis fuga et ipsa repellat cupiditate et.", + "avatar": { + "url": null + } + }, + "avatar_url": null, + "star_count": 0, + "forks_count": 0, + "only_allow_merge_if_pipeline_succeeds": false, + "open_issues_count": 5, + "permissions": { + "project_access": null, + "group_access": { + "access_level": 50, + "notification_level": 3 + } + } +}] diff --git a/spec/frontend/fixtures/static/search_autocomplete.html b/spec/frontend/fixtures/static/search_autocomplete.html new file mode 100644 index 00000000000..29db9020424 --- /dev/null +++ b/spec/frontend/fixtures/static/search_autocomplete.html @@ -0,0 +1,15 @@ + diff --git a/spec/frontend/fixtures/static/signin_tabs.html b/spec/frontend/fixtures/static/signin_tabs.html new file mode 100644 index 00000000000..7e66ab9394b --- /dev/null +++ b/spec/frontend/fixtures/static/signin_tabs.html @@ -0,0 +1,8 @@ + diff --git a/spec/frontend/fixtures/static/sketch_viewer.html b/spec/frontend/fixtures/static/sketch_viewer.html new file mode 100644 index 00000000000..e25e554e568 --- /dev/null +++ b/spec/frontend/fixtures/static/sketch_viewer.html @@ -0,0 +1,3 @@ +
+
+
diff --git a/spec/frontend/fixtures/todos.rb b/spec/frontend/fixtures/todos.rb new file mode 100644 index 00000000000..a7c183d2414 --- /dev/null +++ b/spec/frontend/fixtures/todos.rb @@ -0,0 +1,54 @@ +require 'spec_helper' + +describe 'Todos (JavaScript fixtures)' do + include JavaScriptFixturesHelpers + + let(:admin) { create(:admin) } + let(:namespace) { create(:namespace, name: 'frontend-fixtures' )} + let(:project) { create(:project_empty_repo, namespace: namespace, path: 'todos-project') } + let(:issue_1) { create(:issue, title: 'issue_1', project: project) } + let!(:todo_1) { create(:todo, user: admin, project: project, target: issue_1, created_at: 5.hours.ago) } + let(:issue_2) { create(:issue, title: 'issue_2', project: project) } + let!(:todo_2) { create(:todo, :done, user: admin, project: project, target: issue_2, created_at: 50.hours.ago) } + + before(:all) do + clean_frontend_fixtures('todos/') + end + + after do + remove_repository(project) + end + + describe Dashboard::TodosController, '(JavaScript fixtures)', type: :controller do + render_views + + before do + sign_in(admin) + end + + it 'todos/todos.html' do + get :index + + expect(response).to be_successful + end + end + + describe Projects::TodosController, '(JavaScript fixtures)', type: :controller do + render_views + + before do + sign_in(admin) + end + + it 'todos/todos.json' do + post :create, params: { + namespace_id: namespace, + project_id: project, + issuable_type: 'issue', + issuable_id: issue_2.id + }, format: 'json' + + expect(response).to be_successful + end + end +end diff --git a/spec/frontend/fixtures/u2f.rb b/spec/frontend/fixtures/u2f.rb new file mode 100644 index 00000000000..8ecbc0390cd --- /dev/null +++ b/spec/frontend/fixtures/u2f.rb @@ -0,0 +1,44 @@ +require 'spec_helper' + +context 'U2F' do + include JavaScriptFixturesHelpers + + let(:user) { create(:user, :two_factor_via_u2f, otp_secret: 'otpsecret:coolkids') } + + before(:all) do + clean_frontend_fixtures('u2f/') + end + + describe SessionsController, '(JavaScript fixtures)', type: :controller do + include DeviseHelpers + + render_views + + before do + set_devise_mapping(context: @request) + end + + it 'u2f/authenticate.html' do + allow(controller).to receive(:find_user).and_return(user) + + post :create, params: { user: { login: user.username, password: user.password } } + + expect(response).to be_successful + end + end + + describe Profiles::TwoFactorAuthsController, '(JavaScript fixtures)', type: :controller do + render_views + + before do + sign_in(user) + allow_any_instance_of(Profiles::TwoFactorAuthsController).to receive(:build_qr_code).and_return('qrcode:blackandwhitesquares') + end + + it 'u2f/register.html' do + get :show + + expect(response).to be_successful + end + end +end diff --git a/spec/javascripts/fixtures/.gitignore b/spec/javascripts/fixtures/.gitignore index bed020f5b0a..d6b7ef32c84 100644 --- a/spec/javascripts/fixtures/.gitignore +++ b/spec/javascripts/fixtures/.gitignore @@ -1,5 +1,2 @@ -*.html.raw -*.html -*.json -*.pdf -*.bmpr +* +!.gitignore diff --git a/spec/javascripts/fixtures/abuse_reports.rb b/spec/javascripts/fixtures/abuse_reports.rb deleted file mode 100644 index 21356390cae..00000000000 --- a/spec/javascripts/fixtures/abuse_reports.rb +++ /dev/null @@ -1,26 +0,0 @@ -require 'spec_helper' - -describe Admin::AbuseReportsController, '(JavaScript fixtures)', type: :controller do - include JavaScriptFixturesHelpers - - let(:admin) { create(:admin) } - let!(:abuse_report) { create(:abuse_report) } - let!(:abuse_report_with_short_message) { create(:abuse_report, message: 'SHORT MESSAGE') } - let!(:abuse_report_with_long_message) { create(:abuse_report, message: "LONG MESSAGE\n" * 50) } - - render_views - - before(:all) do - clean_frontend_fixtures('abuse_reports/') - end - - before do - sign_in(admin) - end - - it 'abuse_reports/abuse_reports_list.html' do - get :index - - expect(response).to be_successful - end -end diff --git a/spec/javascripts/fixtures/admin_users.rb b/spec/javascripts/fixtures/admin_users.rb deleted file mode 100644 index 0209594dadc..00000000000 --- a/spec/javascripts/fixtures/admin_users.rb +++ /dev/null @@ -1,28 +0,0 @@ -require 'spec_helper' - -describe Admin::UsersController, '(JavaScript fixtures)', type: :controller do - include StubENV - include JavaScriptFixturesHelpers - - let(:admin) { create(:admin) } - - before do - stub_env('IN_MEMORY_APPLICATION_SETTINGS', 'false') - sign_in(admin) - end - - render_views - - before(:all) do - clean_frontend_fixtures('admin/users') - end - - it 'admin/users/new_with_internal_user_regex.html' do - stub_application_setting(user_default_external: true) - stub_application_setting(user_default_internal_regex: '^(?:(?!\.ext@).)*$\r?') - - get :new - - expect(response).to be_successful - end -end diff --git a/spec/javascripts/fixtures/application_settings.rb b/spec/javascripts/fixtures/application_settings.rb deleted file mode 100644 index 38a060580c1..00000000000 --- a/spec/javascripts/fixtures/application_settings.rb +++ /dev/null @@ -1,33 +0,0 @@ -require 'spec_helper' - -describe Admin::ApplicationSettingsController, '(JavaScript fixtures)', type: :controller do - include StubENV - include JavaScriptFixturesHelpers - - let(:admin) { create(:admin) } - let(:namespace) { create(:namespace, name: 'frontend-fixtures' )} - let(:project) { create(:project_empty_repo, namespace: namespace, path: 'application-settings') } - - before do - stub_env('IN_MEMORY_APPLICATION_SETTINGS', 'false') - sign_in(admin) - end - - render_views - - before(:all) do - clean_frontend_fixtures('application_settings/') - end - - after do - remove_repository(project) - end - - it 'application_settings/accounts_and_limit.html' do - stub_application_setting(user_default_external: false) - - get :show - - expect(response).to be_successful - end -end diff --git a/spec/javascripts/fixtures/autocomplete_sources.rb b/spec/javascripts/fixtures/autocomplete_sources.rb deleted file mode 100644 index 9e04328e2b9..00000000000 --- a/spec/javascripts/fixtures/autocomplete_sources.rb +++ /dev/null @@ -1,39 +0,0 @@ -# frozen_string_literal: true - -require 'spec_helper' - -describe Projects::AutocompleteSourcesController, '(JavaScript fixtures)', type: :controller do - include JavaScriptFixturesHelpers - - set(:admin) { create(:admin) } - set(:group) { create(:group, name: 'frontend-fixtures') } - set(:project) { create(:project, namespace: group, path: 'autocomplete-sources-project') } - set(:issue) { create(:issue, project: project) } - - before(:all) do - clean_frontend_fixtures('autocomplete_sources/') - end - - before do - sign_in(admin) - end - - it 'autocomplete_sources/labels.json' do - issue.labels << create(:label, project: project, title: 'bug') - issue.labels << create(:label, project: project, title: 'critical') - - create(:label, project: project, title: 'feature') - create(:label, project: project, title: 'documentation') - - get :labels, - format: :json, - params: { - namespace_id: group.path, - project_id: project.path, - type: issue.class.name, - type_id: issue.id - } - - expect(response).to be_successful - end -end diff --git a/spec/javascripts/fixtures/blob.rb b/spec/javascripts/fixtures/blob.rb deleted file mode 100644 index ce5030efbf8..00000000000 --- a/spec/javascripts/fixtures/blob.rb +++ /dev/null @@ -1,34 +0,0 @@ -require 'spec_helper' - -describe Projects::BlobController, '(JavaScript fixtures)', type: :controller do - include JavaScriptFixturesHelpers - - let(:admin) { create(:admin) } - let(:namespace) { create(:namespace, name: 'frontend-fixtures' )} - let(:project) { create(:project, :repository, namespace: namespace, path: 'branches-project') } - - render_views - - before(:all) do - clean_frontend_fixtures('blob/') - end - - before do - sign_in(admin) - allow(SecureRandom).to receive(:hex).and_return('securerandomhex:thereisnospoon') - end - - after do - remove_repository(project) - end - - it 'blob/show.html' do - get(:show, params: { - namespace_id: project.namespace, - project_id: project, - id: 'add-ipython-files/files/ipython/basic.ipynb' - }) - - expect(response).to be_successful - end -end diff --git a/spec/javascripts/fixtures/boards.rb b/spec/javascripts/fixtures/boards.rb deleted file mode 100644 index f257d80390f..00000000000 --- a/spec/javascripts/fixtures/boards.rb +++ /dev/null @@ -1,28 +0,0 @@ -require 'spec_helper' - -describe Projects::BoardsController, '(JavaScript fixtures)', type: :controller do - include JavaScriptFixturesHelpers - - let(:admin) { create(:admin) } - let(:namespace) { create(:namespace, name: 'frontend-fixtures' )} - let(:project) { create(:project, :repository, namespace: namespace, path: 'boards-project') } - - render_views - - before(:all) do - clean_frontend_fixtures('boards/') - end - - before do - sign_in(admin) - end - - it 'boards/show.html' do - get(:index, params: { - namespace_id: project.namespace, - project_id: project - }) - - expect(response).to be_successful - end -end diff --git a/spec/javascripts/fixtures/branches.rb b/spec/javascripts/fixtures/branches.rb deleted file mode 100644 index 197fe42c52a..00000000000 --- a/spec/javascripts/fixtures/branches.rb +++ /dev/null @@ -1,32 +0,0 @@ -require 'spec_helper' - -describe Projects::BranchesController, '(JavaScript fixtures)', type: :controller do - include JavaScriptFixturesHelpers - - let(:admin) { create(:admin) } - let(:namespace) { create(:namespace, name: 'frontend-fixtures' )} - let(:project) { create(:project, :repository, namespace: namespace, path: 'branches-project') } - - render_views - - before(:all) do - clean_frontend_fixtures('branches/') - end - - before do - sign_in(admin) - end - - after do - remove_repository(project) - end - - it 'branches/new_branch.html' do - get :new, params: { - namespace_id: project.namespace.to_param, - project_id: project - } - - expect(response).to be_successful - end -end diff --git a/spec/javascripts/fixtures/clusters.rb b/spec/javascripts/fixtures/clusters.rb deleted file mode 100644 index f15ef010807..00000000000 --- a/spec/javascripts/fixtures/clusters.rb +++ /dev/null @@ -1,34 +0,0 @@ -require 'spec_helper' - -describe Projects::ClustersController, '(JavaScript fixtures)', type: :controller do - include JavaScriptFixturesHelpers - - let(:admin) { create(:admin) } - let(:namespace) { create(:namespace, name: 'frontend-fixtures' )} - let(:project) { create(:project, :repository, namespace: namespace) } - let(:cluster) { create(:cluster, :provided_by_gcp, projects: [project]) } - - render_views - - before(:all) do - clean_frontend_fixtures('clusters/') - end - - before do - sign_in(admin) - end - - after do - remove_repository(project) - end - - it 'clusters/show_cluster.html' do - get :show, params: { - namespace_id: project.namespace.to_param, - project_id: project, - id: cluster - } - - expect(response).to be_successful - end -end diff --git a/spec/javascripts/fixtures/commit.rb b/spec/javascripts/fixtures/commit.rb deleted file mode 100644 index a328c455356..00000000000 --- a/spec/javascripts/fixtures/commit.rb +++ /dev/null @@ -1,33 +0,0 @@ -require 'spec_helper' - -describe Projects::CommitController, '(JavaScript fixtures)', type: :controller do - include JavaScriptFixturesHelpers - - set(:project) { create(:project, :repository) } - set(:user) { create(:user) } - let(:commit) { project.commit("master") } - - render_views - - before(:all) do - clean_frontend_fixtures('commit/') - end - - before do - project.add_maintainer(user) - sign_in(user) - allow(SecureRandom).to receive(:hex).and_return('securerandomhex:thereisnospoon') - end - - it 'commit/show.html' do - params = { - namespace_id: project.namespace, - project_id: project, - id: commit.id - } - - get :show, params: params - - expect(response).to be_successful - end -end diff --git a/spec/javascripts/fixtures/deploy_keys.rb b/spec/javascripts/fixtures/deploy_keys.rb deleted file mode 100644 index fca233c6f59..00000000000 --- a/spec/javascripts/fixtures/deploy_keys.rb +++ /dev/null @@ -1,43 +0,0 @@ -require 'spec_helper' - -describe Projects::DeployKeysController, '(JavaScript fixtures)', type: :controller do - include JavaScriptFixturesHelpers - - let(:admin) { create(:admin) } - let(:namespace) { create(:namespace, name: 'frontend-fixtures' )} - let(:project) { create(:project_empty_repo, namespace: namespace, path: 'todos-project') } - let(:project2) { create(:project, :internal)} - let(:project3) { create(:project, :internal)} - let(:project4) { create(:project, :internal)} - - before(:all) do - clean_frontend_fixtures('deploy_keys/') - end - - before do - sign_in(admin) - end - - after do - remove_repository(project) - end - - render_views - - it 'deploy_keys/keys.json' do - create(:rsa_deploy_key_2048, public: true) - project_key = create(:deploy_key, key: 'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQCdMHEHyhRjbhEZVddFn6lTWdgEy5Q6Bz4nwGB76xWZI5YT/1WJOMEW+sL5zYd31kk7sd3FJ5L9ft8zWMWrr/iWXQikC2cqZK24H1xy+ZUmrRuJD4qGAaIVoyyzBL+avL+lF8J5lg6YSw8gwJY/lX64/vnJHUlWw2n5BF8IFOWhiw== dummy@gitlab.com') - internal_key = create(:deploy_key, key: 'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQDNd/UJWhPrpb+b/G5oL109y57yKuCxE+WUGJGYaj7WQKsYRJmLYh1mgjrl+KVyfsWpq4ylOxIfFSnN9xBBFN8mlb0Fma5DC7YsSsibJr3MZ19ZNBprwNcdogET7aW9I0In7Wu5f2KqI6e5W/spJHCy4JVxzVMUvk6Myab0LnJ2iQ== dummy@gitlab.com') - create(:deploy_keys_project, project: project, deploy_key: project_key) - create(:deploy_keys_project, project: project2, deploy_key: internal_key) - create(:deploy_keys_project, project: project3, deploy_key: project_key) - create(:deploy_keys_project, project: project4, deploy_key: project_key) - - get :index, params: { - namespace_id: project.namespace.to_param, - project_id: project - }, format: :json - - expect(response).to be_successful - end -end diff --git a/spec/javascripts/fixtures/groups.rb b/spec/javascripts/fixtures/groups.rb deleted file mode 100644 index c1bb2d43332..00000000000 --- a/spec/javascripts/fixtures/groups.rb +++ /dev/null @@ -1,35 +0,0 @@ -require 'spec_helper' - -describe 'Groups (JavaScript fixtures)', type: :controller do - include JavaScriptFixturesHelpers - - let(:admin) { create(:admin) } - let(:group) { create(:group, name: 'frontend-fixtures-group', runners_token: 'runnerstoken:intabulasreferre')} - - render_views - - before(:all) do - clean_frontend_fixtures('groups/') - end - - before do - group.add_maintainer(admin) - sign_in(admin) - end - - describe GroupsController, '(JavaScript fixtures)', type: :controller do - it 'groups/edit.html' do - get :edit, params: { id: group } - - expect(response).to be_successful - end - end - - describe Groups::Settings::CiCdController, '(JavaScript fixtures)', type: :controller do - it 'groups/ci_cd_settings.html' do - get :show, params: { group_id: group } - - expect(response).to be_successful - end - end -end diff --git a/spec/javascripts/fixtures/issues.rb b/spec/javascripts/fixtures/issues.rb deleted file mode 100644 index b5eb38e0023..00000000000 --- a/spec/javascripts/fixtures/issues.rb +++ /dev/null @@ -1,122 +0,0 @@ -require 'spec_helper' - -describe Projects::IssuesController, '(JavaScript fixtures)', type: :controller do - include JavaScriptFixturesHelpers - - let(:admin) { create(:admin, feed_token: 'feedtoken:coldfeed') } - let(:namespace) { create(:namespace, name: 'frontend-fixtures' )} - let(:project) { create(:project_empty_repo, namespace: namespace, path: 'issues-project') } - - render_views - - before(:all) do - clean_frontend_fixtures('issues/') - end - - before do - sign_in(admin) - end - - after do - remove_repository(project) - end - - it 'issues/open-issue.html' do - render_issue(create(:issue, project: project)) - end - - it 'issues/closed-issue.html' do - render_issue(create(:closed_issue, project: project)) - end - - it 'issues/issue-with-task-list.html' do - issue = create(:issue, project: project, description: '- [ ] Task List Item') - render_issue(issue) - end - - it 'issues/issue_with_comment.html' do - issue = create(:issue, project: project) - create(:note, project: project, noteable: issue, note: '- [ ] Task List Item').save - render_issue(issue) - end - - it 'issues/issue_list.html' do - create(:issue, project: project) - - get :index, params: { - namespace_id: project.namespace.to_param, - project_id: project - } - - expect(response).to be_successful - end - - private - - def render_issue(issue) - get :show, params: { - namespace_id: project.namespace.to_param, - project_id: project, - id: issue.to_param - } - - expect(response).to be_successful - end -end - -describe API::Issues, '(JavaScript fixtures)', type: :request do - include ApiHelpers - include JavaScriptFixturesHelpers - - def get_related_merge_requests(project_id, issue_iid, user = nil) - get api("/projects/#{project_id}/issues/#{issue_iid}/related_merge_requests", user) - end - - def create_referencing_mr(user, project, issue) - attributes = { - author: user, - source_project: project, - target_project: project, - source_branch: "master", - target_branch: "test", - assignee: user, - description: "See #{issue.to_reference}" - } - create(:merge_request, attributes).tap do |merge_request| - create(:note, :system, project: issue.project, noteable: issue, author: user, note: merge_request.to_reference(full: true)) - end - end - - it 'issues/related_merge_requests.json' do - user = create(:user) - project = create(:project, :public, creator_id: user.id, namespace: user.namespace) - issue_title = 'foo' - issue_description = 'closed' - milestone = create(:milestone, title: '1.0.0', project: project) - issue = create :issue, - author: user, - assignees: [user], - project: project, - milestone: milestone, - created_at: generate(:past_time), - updated_at: 1.hour.ago, - title: issue_title, - description: issue_description - - project.add_reporter(user) - create_referencing_mr(user, project, issue) - - create(:merge_request, - :simple, - author: user, - source_project: project, - target_project: project, - description: "Some description") - project2 = create(:project, :public, creator_id: user.id, namespace: user.namespace) - create_referencing_mr(user, project2, issue).update!(head_pipeline: create(:ci_pipeline)) - - get_related_merge_requests(project.id, issue.iid, user) - - expect(response).to be_successful - end -end diff --git a/spec/javascripts/fixtures/jobs.rb b/spec/javascripts/fixtures/jobs.rb deleted file mode 100644 index a3a7759c85b..00000000000 --- a/spec/javascripts/fixtures/jobs.rb +++ /dev/null @@ -1,54 +0,0 @@ -require 'spec_helper' - -describe Projects::JobsController, '(JavaScript fixtures)', type: :controller do - include JavaScriptFixturesHelpers - - let(:admin) { create(:admin) } - let(:namespace) { create(:namespace, name: 'frontend-fixtures' )} - let(:project) { create(:project, :repository, namespace: namespace, path: 'builds-project') } - let(:pipeline) { create(:ci_empty_pipeline, project: project, sha: project.commit.id) } - let!(:build_with_artifacts) { create(:ci_build, :success, :artifacts, :trace_artifact, pipeline: pipeline, stage: 'test', artifacts_expire_at: Time.now + 18.months) } - let!(:failed_build) { create(:ci_build, :failed, pipeline: pipeline, stage: 'build') } - let!(:pending_build) { create(:ci_build, :pending, pipeline: pipeline, stage: 'deploy') } - let!(:delayed_job) do - create(:ci_build, :scheduled, - pipeline: pipeline, - name: 'delayed job', - stage: 'test') - end - - render_views - - before(:all) do - clean_frontend_fixtures('builds/') - clean_frontend_fixtures('jobs/') - end - - before do - sign_in(admin) - end - - after do - remove_repository(project) - end - - it 'builds/build-with-artifacts.html' do - get :show, params: { - namespace_id: project.namespace.to_param, - project_id: project, - id: build_with_artifacts.to_param - } - - expect(response).to be_successful - end - - it 'jobs/delayed.json' do - get :show, params: { - namespace_id: project.namespace.to_param, - project_id: project, - id: delayed_job.to_param - }, format: :json - - expect(response).to be_successful - end -end diff --git a/spec/javascripts/fixtures/labels.rb b/spec/javascripts/fixtures/labels.rb deleted file mode 100644 index a312287970f..00000000000 --- a/spec/javascripts/fixtures/labels.rb +++ /dev/null @@ -1,58 +0,0 @@ -require 'spec_helper' - -describe 'Labels (JavaScript fixtures)' do - include JavaScriptFixturesHelpers - - let(:admin) { create(:admin) } - let(:group) { create(:group, name: 'frontend-fixtures-group' )} - let(:project) { create(:project_empty_repo, namespace: group, path: 'labels-project') } - - let!(:project_label_bug) { create(:label, project: project, title: 'bug', color: '#FF0000') } - let!(:project_label_enhancement) { create(:label, project: project, title: 'enhancement', color: '#00FF00') } - let!(:project_label_feature) { create(:label, project: project, title: 'feature', color: '#0000FF') } - - let!(:group_label_roses) { create(:group_label, group: group, title: 'roses', color: '#FF0000') } - let!(:groub_label_space) { create(:group_label, group: group, title: 'some space', color: '#FFFFFF') } - let!(:groub_label_violets) { create(:group_label, group: group, title: 'violets', color: '#0000FF') } - - before(:all) do - clean_frontend_fixtures('labels/') - end - - after do - remove_repository(project) - end - - describe Groups::LabelsController, '(JavaScript fixtures)', type: :controller do - render_views - - before do - sign_in(admin) - end - - it 'labels/group_labels.json' do - get :index, params: { - group_id: group - }, format: 'json' - - expect(response).to be_successful - end - end - - describe Projects::LabelsController, '(JavaScript fixtures)', type: :controller do - render_views - - before do - sign_in(admin) - end - - it 'labels/project_labels.json' do - get :index, params: { - namespace_id: group, - project_id: project - }, format: 'json' - - expect(response).to be_successful - end - end -end diff --git a/spec/javascripts/fixtures/merge_requests.rb b/spec/javascripts/fixtures/merge_requests.rb deleted file mode 100644 index 88706e96676..00000000000 --- a/spec/javascripts/fixtures/merge_requests.rb +++ /dev/null @@ -1,134 +0,0 @@ -require 'spec_helper' - -describe Projects::MergeRequestsController, '(JavaScript fixtures)', type: :controller do - include JavaScriptFixturesHelpers - - let(:admin) { create(:admin) } - let(:namespace) { create(:namespace, name: 'frontend-fixtures' )} - let(:project) { create(:project, :repository, namespace: namespace, path: 'merge-requests-project') } - let(:merge_request) { create(:merge_request, :with_diffs, source_project: project, target_project: project, description: '- [ ] Task List Item') } - let(:merged_merge_request) { create(:merge_request, :merged, source_project: project, target_project: project) } - let(:pipeline) do - create( - :ci_pipeline, - project: merge_request.source_project, - ref: merge_request.source_branch, - sha: merge_request.diff_head_sha - ) - end - let(:path) { "files/ruby/popen.rb" } - let(:position) do - Gitlab::Diff::Position.new( - old_path: path, - new_path: path, - old_line: nil, - new_line: 14, - diff_refs: merge_request.diff_refs - ) - end - - render_views - - before(:all) do - clean_frontend_fixtures('merge_requests/') - end - - before do - sign_in(admin) - allow(Discussion).to receive(:build_discussion_id).and_return(['discussionid:ceterumcenseo']) - end - - after do - remove_repository(project) - end - - it 'merge_requests/merge_request_of_current_user.html' do - merge_request.update(author: admin) - - render_merge_request(merge_request) - end - - it 'merge_requests/merge_request_with_task_list.html' do - create(:ci_build, :pending, pipeline: pipeline) - - render_merge_request(merge_request) - end - - it 'merge_requests/merged_merge_request.html' do - expect_next_instance_of(MergeRequest) do |merge_request| - allow(merge_request).to receive(:source_branch_exists?).and_return(true) - allow(merge_request).to receive(:can_remove_source_branch?).and_return(true) - end - render_merge_request(merged_merge_request) - end - - it 'merge_requests/diff_comment.html' do - create(:diff_note_on_merge_request, project: project, author: admin, position: position, noteable: merge_request) - create(:note_on_merge_request, author: admin, project: project, noteable: merge_request) - render_merge_request(merge_request) - end - - it 'merge_requests/merge_request_with_comment.html' do - create(:note_on_merge_request, author: admin, project: project, noteable: merge_request, note: '- [ ] Task List Item') - render_merge_request(merge_request) - end - - it 'merge_requests/discussions.json' do - create(:diff_note_on_merge_request, project: project, author: admin, position: position, noteable: merge_request) - render_discussions_json(merge_request) - end - - it 'merge_requests/diff_discussion.json' do - create(:diff_note_on_merge_request, project: project, author: admin, position: position, noteable: merge_request) - render_discussions_json(merge_request) - end - - it 'merge_requests/resolved_diff_discussion.json' do - note = create(:discussion_note_on_merge_request, :resolved, project: project, author: admin, position: position, noteable: merge_request) - create(:system_note, project: project, author: admin, noteable: merge_request, discussion_id: note.discussion.id) - - render_discussions_json(merge_request) - end - - context 'with image diff' do - let(:merge_request2) { create(:merge_request_with_diffs, :with_image_diffs, source_project: project, title: "Added images") } - let(:image_path) { "files/images/ee_repo_logo.png" } - let(:image_position) do - Gitlab::Diff::Position.new( - old_path: image_path, - new_path: image_path, - width: 100, - height: 100, - x: 1, - y: 1, - position_type: "image", - diff_refs: merge_request2.diff_refs - ) - end - - it 'merge_requests/image_diff_discussion.json' do - create(:diff_note_on_merge_request, project: project, noteable: merge_request2, position: image_position) - render_discussions_json(merge_request2) - end - end - - private - - def render_discussions_json(merge_request) - get :discussions, params: { - namespace_id: project.namespace.to_param, - project_id: project, - id: merge_request.to_param - }, format: :json - end - - def render_merge_request(merge_request) - get :show, params: { - namespace_id: project.namespace.to_param, - project_id: project, - id: merge_request.to_param - }, format: :html - - expect(response).to be_successful - end -end diff --git a/spec/javascripts/fixtures/merge_requests_diffs.rb b/spec/javascripts/fixtures/merge_requests_diffs.rb deleted file mode 100644 index 61c694e430f..00000000000 --- a/spec/javascripts/fixtures/merge_requests_diffs.rb +++ /dev/null @@ -1,70 +0,0 @@ - -require 'spec_helper' - -describe Projects::MergeRequests::DiffsController, '(JavaScript fixtures)', type: :controller do - include JavaScriptFixturesHelpers - - let(:admin) { create(:admin) } - let(:namespace) { create(:namespace, name: 'frontend-fixtures' )} - let(:project) { create(:project, :repository, namespace: namespace, path: 'merge-requests-project') } - let(:merge_request) { create(:merge_request, :with_diffs, source_project: project, target_project: project, description: '- [ ] Task List Item') } - let(:path) { "files/ruby/popen.rb" } - let(:selected_commit) { merge_request.all_commits[0] } - let(:position) do - Gitlab::Diff::Position.new( - old_path: path, - new_path: path, - old_line: nil, - new_line: 14, - diff_refs: merge_request.diff_refs - ) - end - - render_views - - before(:all) do - clean_frontend_fixtures('merge_request_diffs/') - end - - before do - sign_in(admin) - end - - after do - remove_repository(project) - end - - it 'merge_request_diffs/with_commit.json' do - # Create a user that matches the selected commit author - # This is so that the "author" information will be populated - create(:user, email: selected_commit.author_email, name: selected_commit.author_name) - - render_merge_request(merge_request, commit_id: selected_commit.sha) - end - - it 'merge_request_diffs/inline_changes_tab_with_comments.json' do - create(:diff_note_on_merge_request, project: project, author: admin, position: position, noteable: merge_request) - create(:note_on_merge_request, author: admin, project: project, noteable: merge_request) - render_merge_request(merge_request) - end - - it 'merge_request_diffs/parallel_changes_tab_with_comments.json' do - create(:diff_note_on_merge_request, project: project, author: admin, position: position, noteable: merge_request) - create(:note_on_merge_request, author: admin, project: project, noteable: merge_request) - render_merge_request(merge_request, view: 'parallel') - end - - private - - def render_merge_request(merge_request, view: 'inline', **extra_params) - get :show, params: { - namespace_id: project.namespace.to_param, - project_id: project, - id: merge_request.to_param, - view: view, - **extra_params - }, format: :json - - expect(response).to be_successful - end -end diff --git a/spec/javascripts/fixtures/pipeline_schedules.rb b/spec/javascripts/fixtures/pipeline_schedules.rb deleted file mode 100644 index a70091a3919..00000000000 --- a/spec/javascripts/fixtures/pipeline_schedules.rb +++ /dev/null @@ -1,43 +0,0 @@ -require 'spec_helper' - -describe Projects::PipelineSchedulesController, '(JavaScript fixtures)', type: :controller do - include JavaScriptFixturesHelpers - - let(:admin) { create(:admin) } - let(:namespace) { create(:namespace, name: 'frontend-fixtures' )} - let(:project) { create(:project, :public, :repository) } - let!(:pipeline_schedule) { create(:ci_pipeline_schedule, project: project, owner: admin) } - let!(:pipeline_schedule_populated) { create(:ci_pipeline_schedule, project: project, owner: admin) } - let!(:pipeline_schedule_variable1) { create(:ci_pipeline_schedule_variable, key: 'foo', value: 'foovalue', pipeline_schedule: pipeline_schedule_populated) } - let!(:pipeline_schedule_variable2) { create(:ci_pipeline_schedule_variable, key: 'bar', value: 'barvalue', pipeline_schedule: pipeline_schedule_populated) } - - render_views - - before(:all) do - clean_frontend_fixtures('pipeline_schedules/') - end - - before do - sign_in(admin) - end - - it 'pipeline_schedules/edit.html' do - get :edit, params: { - namespace_id: project.namespace.to_param, - project_id: project, - id: pipeline_schedule.id - } - - expect(response).to be_successful - end - - it 'pipeline_schedules/edit_with_variables.html' do - get :edit, params: { - namespace_id: project.namespace.to_param, - project_id: project, - id: pipeline_schedule_populated.id - } - - expect(response).to be_successful - end -end diff --git a/spec/javascripts/fixtures/pipelines.rb b/spec/javascripts/fixtures/pipelines.rb deleted file mode 100644 index ed57eb0aa80..00000000000 --- a/spec/javascripts/fixtures/pipelines.rb +++ /dev/null @@ -1,34 +0,0 @@ -require 'spec_helper' - -describe Projects::PipelinesController, '(JavaScript fixtures)', type: :controller do - include JavaScriptFixturesHelpers - - let(:admin) { create(:admin) } - let(:namespace) { create(:namespace, name: 'frontend-fixtures' )} - let(:project) { create(:project, :repository, namespace: namespace, path: 'pipelines-project') } - let(:commit) { create(:commit, project: project) } - let(:commit_without_author) { RepoHelpers.another_sample_commit } - let!(:user) { create(:user, developer_projects: [project], email: commit.author_email) } - let!(:pipeline) { create(:ci_pipeline, project: project, sha: commit.id, user: user) } - let!(:pipeline_without_author) { create(:ci_pipeline, project: project, sha: commit_without_author.id) } - let!(:pipeline_without_commit) { create(:ci_pipeline, project: project, sha: '0000') } - - render_views - - before(:all) do - clean_frontend_fixtures('pipelines/') - end - - before do - sign_in(admin) - end - - it 'pipelines/pipelines.json' do - get :index, params: { - namespace_id: namespace, - project_id: project - }, format: :json - - expect(response).to be_successful - end -end diff --git a/spec/javascripts/fixtures/projects.rb b/spec/javascripts/fixtures/projects.rb deleted file mode 100644 index b6c29003e57..00000000000 --- a/spec/javascripts/fixtures/projects.rb +++ /dev/null @@ -1,83 +0,0 @@ -require 'spec_helper' - -describe 'Projects (JavaScript fixtures)', type: :controller do - include JavaScriptFixturesHelpers - - runners_token = 'runnerstoken:intabulasreferre' - - let(:admin) { create(:admin) } - let(:namespace) { create(:namespace, name: 'frontend-fixtures' )} - let(:project) { create(:project, namespace: namespace, path: 'builds-project', runners_token: runners_token) } - let(:project_with_repo) { create(:project, :repository, description: 'Code and stuff') } - let(:project_variable_populated) { create(:project, namespace: namespace, path: 'builds-project2', runners_token: runners_token) } - - render_views - - before(:all) do - clean_frontend_fixtures('projects/') - end - - before do - stub_licensed_features(variable_environment_scope: true) - - project.add_maintainer(admin) - sign_in(admin) - allow(SecureRandom).to receive(:hex).and_return('securerandomhex:thereisnospoon') - end - - after do - remove_repository(project) - end - - describe ProjectsController, '(JavaScript fixtures)', type: :controller do - it 'projects/dashboard.html' do - get :show, params: { - namespace_id: project.namespace.to_param, - id: project - } - - expect(response).to be_successful - end - - it 'projects/overview.html' do - get :show, params: { - namespace_id: project_with_repo.namespace.to_param, - id: project_with_repo - } - - expect(response).to be_successful - end - - it 'projects/edit.html' do - get :edit, params: { - namespace_id: project.namespace.to_param, - id: project - } - - expect(response).to be_successful - end - end - - describe Projects::Settings::CiCdController, '(JavaScript fixtures)', type: :controller do - it 'projects/ci_cd_settings.html' do - get :show, params: { - namespace_id: project.namespace.to_param, - project_id: project - } - - expect(response).to be_successful - end - - it 'projects/ci_cd_settings_with_variables.html' do - create(:ci_variable, project: project_variable_populated) - create(:ci_variable, project: project_variable_populated) - - get :show, params: { - namespace_id: project_variable_populated.namespace.to_param, - project_id: project_variable_populated - } - - expect(response).to be_successful - end - end -end diff --git a/spec/javascripts/fixtures/prometheus_service.rb b/spec/javascripts/fixtures/prometheus_service.rb deleted file mode 100644 index 93ee81120d7..00000000000 --- a/spec/javascripts/fixtures/prometheus_service.rb +++ /dev/null @@ -1,34 +0,0 @@ -require 'spec_helper' - -describe Projects::ServicesController, '(JavaScript fixtures)', type: :controller do - include JavaScriptFixturesHelpers - - let(:admin) { create(:admin) } - let(:namespace) { create(:namespace, name: 'frontend-fixtures' )} - let(:project) { create(:project_empty_repo, namespace: namespace, path: 'services-project') } - let!(:service) { create(:prometheus_service, project: project) } - - render_views - - before(:all) do - clean_frontend_fixtures('services/prometheus') - end - - before do - sign_in(admin) - end - - after do - remove_repository(project) - end - - it 'services/prometheus/prometheus_service.html' do - get :edit, params: { - namespace_id: namespace, - project_id: project, - id: service.to_param - } - - expect(response).to be_successful - end -end diff --git a/spec/javascripts/fixtures/raw.rb b/spec/javascripts/fixtures/raw.rb deleted file mode 100644 index 801c80a0112..00000000000 --- a/spec/javascripts/fixtures/raw.rb +++ /dev/null @@ -1,39 +0,0 @@ -require 'spec_helper' - -describe 'Raw files', '(JavaScript fixtures)' do - include JavaScriptFixturesHelpers - - let(:namespace) { create(:namespace, name: 'frontend-fixtures' )} - let(:project) { create(:project, :repository, namespace: namespace, path: 'raw-project') } - let(:response) { @blob.data.force_encoding('UTF-8') } - - before(:all) do - clean_frontend_fixtures('blob/balsamiq/') - clean_frontend_fixtures('blob/notebook/') - clean_frontend_fixtures('blob/pdf/') - end - - after do - remove_repository(project) - end - - it 'blob/balsamiq/test.bmpr' do - @blob = project.repository.blob_at('b89b56d79', 'files/images/balsamiq.bmpr') - end - - it 'blob/notebook/basic.json' do - @blob = project.repository.blob_at('6d85bb69', 'files/ipython/basic.ipynb') - end - - it 'blob/notebook/worksheets.json' do - @blob = project.repository.blob_at('6d85bb69', 'files/ipython/worksheets.ipynb') - end - - it 'blob/notebook/math.json' do - @blob = project.repository.blob_at('93ee732', 'files/ipython/math.ipynb') - end - - it 'blob/pdf/test.pdf' do - @blob = project.repository.blob_at('e774ebd33', 'files/pdf/test.pdf') - end -end diff --git a/spec/javascripts/fixtures/search.rb b/spec/javascripts/fixtures/search.rb deleted file mode 100644 index c26c6998ae9..00000000000 --- a/spec/javascripts/fixtures/search.rb +++ /dev/null @@ -1,17 +0,0 @@ -require 'spec_helper' - -describe SearchController, '(JavaScript fixtures)', type: :controller do - include JavaScriptFixturesHelpers - - render_views - - before(:all) do - clean_frontend_fixtures('search/') - end - - it 'search/show.html' do - get :show - - expect(response).to be_successful - end -end diff --git a/spec/javascripts/fixtures/services.rb b/spec/javascripts/fixtures/services.rb deleted file mode 100644 index ee1e088f158..00000000000 --- a/spec/javascripts/fixtures/services.rb +++ /dev/null @@ -1,34 +0,0 @@ -require 'spec_helper' - -describe Projects::ServicesController, '(JavaScript fixtures)', type: :controller do - include JavaScriptFixturesHelpers - - let(:admin) { create(:admin) } - let(:namespace) { create(:namespace, name: 'frontend-fixtures' )} - let(:project) { create(:project_empty_repo, namespace: namespace, path: 'services-project') } - let!(:service) { create(:custom_issue_tracker_service, project: project, title: 'Custom Issue Tracker') } - - render_views - - before(:all) do - clean_frontend_fixtures('services/') - end - - before do - sign_in(admin) - end - - after do - remove_repository(project) - end - - it 'services/edit_service.html' do - get :edit, params: { - namespace_id: namespace, - project_id: project, - id: service.to_param - } - - expect(response).to be_successful - end -end diff --git a/spec/javascripts/fixtures/sessions.rb b/spec/javascripts/fixtures/sessions.rb deleted file mode 100644 index 18574ea06b5..00000000000 --- a/spec/javascripts/fixtures/sessions.rb +++ /dev/null @@ -1,25 +0,0 @@ -require 'spec_helper' - -describe 'Sessions (JavaScript fixtures)' do - include JavaScriptFixturesHelpers - - before(:all) do - clean_frontend_fixtures('sessions/') - end - - describe SessionsController, '(JavaScript fixtures)', type: :controller do - include DeviseHelpers - - render_views - - before do - set_devise_mapping(context: @request) - end - - it 'sessions/new.html' do - get :new - - expect(response).to be_successful - end - end -end diff --git a/spec/javascripts/fixtures/snippet.rb b/spec/javascripts/fixtures/snippet.rb deleted file mode 100644 index 23bcdb47ac6..00000000000 --- a/spec/javascripts/fixtures/snippet.rb +++ /dev/null @@ -1,33 +0,0 @@ -require 'spec_helper' - -describe SnippetsController, '(JavaScript fixtures)', type: :controller do - include JavaScriptFixturesHelpers - - let(:admin) { create(:admin) } - let(:namespace) { create(:namespace, name: 'frontend-fixtures' )} - let(:project) { create(:project, :repository, namespace: namespace, path: 'branches-project') } - let(:snippet) { create(:personal_snippet, title: 'snippet.md', content: '# snippet', file_name: 'snippet.md', author: admin) } - - render_views - - before(:all) do - clean_frontend_fixtures('snippets/') - end - - before do - sign_in(admin) - allow(Discussion).to receive(:build_discussion_id).and_return(['discussionid:ceterumcenseo']) - end - - after do - remove_repository(project) - end - - it 'snippets/show.html' do - create(:discussion_note_on_snippet, noteable: snippet, project: project, author: admin, note: '- [ ] Task List Item') - - get(:show, params: { id: snippet.to_param }) - - expect(response).to be_successful - end -end diff --git a/spec/javascripts/fixtures/static/README.md b/spec/javascripts/fixtures/static/README.md deleted file mode 100644 index b5c2f8233bf..00000000000 --- a/spec/javascripts/fixtures/static/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# Please do not add new files here! - -Instead use a Ruby file in the fixtures root directory (`spec/javascripts/fixtures/`). diff --git a/spec/javascripts/fixtures/static/ajax_loading_spinner.html b/spec/javascripts/fixtures/static/ajax_loading_spinner.html deleted file mode 100644 index 0e1ebb32b1c..00000000000 --- a/spec/javascripts/fixtures/static/ajax_loading_spinner.html +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/spec/javascripts/fixtures/static/balsamiq_viewer.html b/spec/javascripts/fixtures/static/balsamiq_viewer.html deleted file mode 100644 index cdd723d1a84..00000000000 --- a/spec/javascripts/fixtures/static/balsamiq_viewer.html +++ /dev/null @@ -1 +0,0 @@ -
diff --git a/spec/javascripts/fixtures/static/create_item_dropdown.html b/spec/javascripts/fixtures/static/create_item_dropdown.html deleted file mode 100644 index d2d38370092..00000000000 --- a/spec/javascripts/fixtures/static/create_item_dropdown.html +++ /dev/null @@ -1,11 +0,0 @@ -
- -
diff --git a/spec/javascripts/fixtures/static/environments/table.html b/spec/javascripts/fixtures/static/environments/table.html deleted file mode 100644 index 417af564ff1..00000000000 --- a/spec/javascripts/fixtures/static/environments/table.html +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - -
EnvironmentLast deploymentJobCommit
diff --git a/spec/javascripts/fixtures/static/event_filter.html b/spec/javascripts/fixtures/static/event_filter.html deleted file mode 100644 index 8e9b6fb1b5c..00000000000 --- a/spec/javascripts/fixtures/static/event_filter.html +++ /dev/null @@ -1,44 +0,0 @@ - diff --git a/spec/javascripts/fixtures/static/gl_dropdown.html b/spec/javascripts/fixtures/static/gl_dropdown.html deleted file mode 100644 index 08f6738414e..00000000000 --- a/spec/javascripts/fixtures/static/gl_dropdown.html +++ /dev/null @@ -1,26 +0,0 @@ -
- -
diff --git a/spec/javascripts/fixtures/static/gl_field_errors.html b/spec/javascripts/fixtures/static/gl_field_errors.html deleted file mode 100644 index f8470e02b7c..00000000000 --- a/spec/javascripts/fixtures/static/gl_field_errors.html +++ /dev/null @@ -1,22 +0,0 @@ -
-
-Text -
-
-Email -
-
-Password -
-
-Alphanumeric -
-
- -
-
-Custom, do not validate -
-
-Submit -
diff --git a/spec/javascripts/fixtures/static/images/green_box.png b/spec/javascripts/fixtures/static/images/green_box.png deleted file mode 100644 index cd1ff9f9ade..00000000000 Binary files a/spec/javascripts/fixtures/static/images/green_box.png and /dev/null differ diff --git a/spec/javascripts/fixtures/static/images/one_white_pixel.png b/spec/javascripts/fixtures/static/images/one_white_pixel.png deleted file mode 100644 index 073fcf40a18..00000000000 Binary files a/spec/javascripts/fixtures/static/images/one_white_pixel.png and /dev/null differ diff --git a/spec/javascripts/fixtures/static/images/red_box.png b/spec/javascripts/fixtures/static/images/red_box.png deleted file mode 100644 index 73b2927da0f..00000000000 Binary files a/spec/javascripts/fixtures/static/images/red_box.png and /dev/null differ diff --git a/spec/javascripts/fixtures/static/issuable_filter.html b/spec/javascripts/fixtures/static/issuable_filter.html deleted file mode 100644 index 06b70fb43f1..00000000000 --- a/spec/javascripts/fixtures/static/issuable_filter.html +++ /dev/null @@ -1,9 +0,0 @@ -
- - - - - - - -
diff --git a/spec/javascripts/fixtures/static/issue_sidebar_label.html b/spec/javascripts/fixtures/static/issue_sidebar_label.html deleted file mode 100644 index ec8fb30f219..00000000000 --- a/spec/javascripts/fixtures/static/issue_sidebar_label.html +++ /dev/null @@ -1,26 +0,0 @@ -
- - - -
diff --git a/spec/javascripts/fixtures/static/line_highlighter.html b/spec/javascripts/fixtures/static/line_highlighter.html deleted file mode 100644 index 897a25d6760..00000000000 --- a/spec/javascripts/fixtures/static/line_highlighter.html +++ /dev/null @@ -1,107 +0,0 @@ -
-
- -
Line 1Line 2Line 3Line 4Line 5Line 6Line 7Line 8Line 9Line 10Line 11Line 12Line 13Line 14Line 15Line 16Line 17Line 18Line 19Line 20Line 21Line 22Line 23Line 24Line 25
-
-
diff --git a/spec/javascripts/fixtures/static/linked_tabs.html b/spec/javascripts/fixtures/static/linked_tabs.html deleted file mode 100644 index c25463bf1db..00000000000 --- a/spec/javascripts/fixtures/static/linked_tabs.html +++ /dev/null @@ -1,20 +0,0 @@ - -
-
-Tab 1 Content -
-
-Tab 2 Content -
-
diff --git a/spec/javascripts/fixtures/static/merge_requests_show.html b/spec/javascripts/fixtures/static/merge_requests_show.html deleted file mode 100644 index 87e36c9f315..00000000000 --- a/spec/javascripts/fixtures/static/merge_requests_show.html +++ /dev/null @@ -1,15 +0,0 @@ - -
-
-
-
    -
  • - -Task List Item -
  • -
- -
-
-
-
diff --git a/spec/javascripts/fixtures/static/mini_dropdown_graph.html b/spec/javascripts/fixtures/static/mini_dropdown_graph.html deleted file mode 100644 index cd0b8dec3fc..00000000000 --- a/spec/javascripts/fixtures/static/mini_dropdown_graph.html +++ /dev/null @@ -1,13 +0,0 @@ - diff --git a/spec/javascripts/fixtures/static/notebook_viewer.html b/spec/javascripts/fixtures/static/notebook_viewer.html deleted file mode 100644 index 4bbb7bf1094..00000000000 --- a/spec/javascripts/fixtures/static/notebook_viewer.html +++ /dev/null @@ -1 +0,0 @@ -
diff --git a/spec/javascripts/fixtures/static/oauth_remember_me.html b/spec/javascripts/fixtures/static/oauth_remember_me.html deleted file mode 100644 index 9ba1ffc72fe..00000000000 --- a/spec/javascripts/fixtures/static/oauth_remember_me.html +++ /dev/null @@ -1,6 +0,0 @@ -
- - - - -
diff --git a/spec/javascripts/fixtures/static/pdf_viewer.html b/spec/javascripts/fixtures/static/pdf_viewer.html deleted file mode 100644 index 350d35a262f..00000000000 --- a/spec/javascripts/fixtures/static/pdf_viewer.html +++ /dev/null @@ -1 +0,0 @@ -
diff --git a/spec/javascripts/fixtures/static/pipeline_graph.html b/spec/javascripts/fixtures/static/pipeline_graph.html deleted file mode 100644 index 422372bb7d5..00000000000 --- a/spec/javascripts/fixtures/static/pipeline_graph.html +++ /dev/null @@ -1,24 +0,0 @@ -
- -
diff --git a/spec/javascripts/fixtures/static/pipelines.html b/spec/javascripts/fixtures/static/pipelines.html deleted file mode 100644 index 42333f94f2f..00000000000 --- a/spec/javascripts/fixtures/static/pipelines.html +++ /dev/null @@ -1,3 +0,0 @@ -
-
-
diff --git a/spec/javascripts/fixtures/static/project_select_combo_button.html b/spec/javascripts/fixtures/static/project_select_combo_button.html deleted file mode 100644 index 50c826051c0..00000000000 --- a/spec/javascripts/fixtures/static/project_select_combo_button.html +++ /dev/null @@ -1,9 +0,0 @@ -
- - - - - - - -
diff --git a/spec/javascripts/fixtures/static/projects.json b/spec/javascripts/fixtures/static/projects.json deleted file mode 100644 index 68a150f602a..00000000000 --- a/spec/javascripts/fixtures/static/projects.json +++ /dev/null @@ -1,445 +0,0 @@ -[{ - "id": 9, - "description": "", - "default_branch": null, - "tag_list": [], - "public": true, - "archived": false, - "visibility_level": 20, - "ssh_url_to_repo": "phil@localhost:root/test.git", - "http_url_to_repo": "http://localhost:3000/root/test.git", - "web_url": "http://localhost:3000/root/test", - "owner": { - "name": "Administrator", - "username": "root", - "id": 1, - "state": "active", - "avatar_url": "https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80\u0026d=identicon", - "web_url": "http://localhost:3000/u/root" - }, - "name": "test", - "name_with_namespace": "Administrator / test", - "path": "test", - "path_with_namespace": "root/test", - "issues_enabled": true, - "merge_requests_enabled": true, - "wiki_enabled": true, - "builds_enabled": true, - "snippets_enabled": false, - "created_at": "2016-01-14T19:08:05.364Z", - "last_activity_at": "2016-01-14T19:08:07.418Z", - "shared_runners_enabled": true, - "creator_id": 1, - "namespace": { - "id": 1, - "name": "root", - "path": "root", - "owner_id": 1, - "created_at": "2016-01-13T20:19:44.439Z", - "updated_at": "2016-01-13T20:19:44.439Z", - "description": "", - "avatar": null - }, - "avatar_url": null, - "star_count": 0, - "forks_count": 0, - "only_allow_merge_if_pipeline_succeeds": false, - "open_issues_count": 0, - "permissions": { - "project_access": null, - "group_access": null - } -}, { - "id": 8, - "description": "Voluptatem quae nulla eius numquam ullam voluptatibus quia modi.", - "default_branch": "master", - "tag_list": [], - "public": false, - "archived": false, - "visibility_level": 0, - "ssh_url_to_repo": "phil@localhost:h5bp/html5-boilerplate.git", - "http_url_to_repo": "http://localhost:3000/h5bp/html5-boilerplate.git", - "web_url": "http://localhost:3000/h5bp/html5-boilerplate", - "name": "Html5 Boilerplate", - "name_with_namespace": "H5bp / Html5 Boilerplate", - "path": "html5-boilerplate", - "path_with_namespace": "h5bp/html5-boilerplate", - "issues_enabled": true, - "merge_requests_enabled": true, - "wiki_enabled": true, - "builds_enabled": true, - "snippets_enabled": false, - "created_at": "2016-01-13T20:19:57.525Z", - "last_activity_at": "2016-01-13T20:27:57.280Z", - "shared_runners_enabled": true, - "creator_id": 1, - "namespace": { - "id": 5, - "name": "H5bp", - "path": "h5bp", - "owner_id": null, - "created_at": "2016-01-13T20:19:57.239Z", - "updated_at": "2016-01-13T20:19:57.239Z", - "description": "Tempore accusantium possimus aut libero.", - "avatar": { - "url": null - } - }, - "avatar_url": null, - "star_count": 0, - "forks_count": 0, - "only_allow_merge_if_pipeline_succeeds": false, - "open_issues_count": 5, - "permissions": { - "project_access": { - "access_level": 10, - "notification_level": 3 - }, - "group_access": { - "access_level": 50, - "notification_level": 3 - } - } -}, { - "id": 7, - "description": "Modi odio mollitia dolorem qui.", - "default_branch": "master", - "tag_list": [], - "public": false, - "archived": false, - "visibility_level": 0, - "ssh_url_to_repo": "phil@localhost:twitter/typeahead-js.git", - "http_url_to_repo": "http://localhost:3000/twitter/typeahead-js.git", - "web_url": "http://localhost:3000/twitter/typeahead-js", - "name": "Typeahead.Js", - "name_with_namespace": "Twitter / Typeahead.Js", - "path": "typeahead-js", - "path_with_namespace": "twitter/typeahead-js", - "issues_enabled": true, - "merge_requests_enabled": true, - "wiki_enabled": true, - "builds_enabled": true, - "snippets_enabled": false, - "created_at": "2016-01-13T20:19:56.212Z", - "last_activity_at": "2016-01-13T20:27:51.496Z", - "shared_runners_enabled": true, - "creator_id": 1, - "namespace": { - "id": 4, - "name": "Twitter", - "path": "twitter", - "owner_id": null, - "created_at": "2016-01-13T20:19:54.480Z", - "updated_at": "2016-01-13T20:19:54.480Z", - "description": "Id voluptatem ipsa maiores omnis repudiandae et et.", - "avatar": { - "url": null - } - }, - "avatar_url": null, - "star_count": 0, - "forks_count": 0, - "only_allow_merge_if_pipeline_succeeds": true, - "open_issues_count": 4, - "permissions": { - "project_access": null, - "group_access": { - "access_level": 10, - "notification_level": 3 - } - } -}, { - "id": 6, - "description": "Omnis asperiores ipsa et beatae quidem necessitatibus quia.", - "default_branch": "master", - "tag_list": [], - "public": true, - "archived": false, - "visibility_level": 20, - "ssh_url_to_repo": "phil@localhost:twitter/flight.git", - "http_url_to_repo": "http://localhost:3000/twitter/flight.git", - "web_url": "http://localhost:3000/twitter/flight", - "name": "Flight", - "name_with_namespace": "Twitter / Flight", - "path": "flight", - "path_with_namespace": "twitter/flight", - "issues_enabled": true, - "merge_requests_enabled": true, - "wiki_enabled": true, - "builds_enabled": true, - "snippets_enabled": false, - "created_at": "2016-01-13T20:19:54.754Z", - "last_activity_at": "2016-01-13T20:27:50.502Z", - "shared_runners_enabled": true, - "creator_id": 1, - "namespace": { - "id": 4, - "name": "Twitter", - "path": "twitter", - "owner_id": null, - "created_at": "2016-01-13T20:19:54.480Z", - "updated_at": "2016-01-13T20:19:54.480Z", - "description": "Id voluptatem ipsa maiores omnis repudiandae et et.", - "avatar": { - "url": null - } - }, - "avatar_url": null, - "star_count": 0, - "forks_count": 0, - "only_allow_merge_if_pipeline_succeeds": true, - "open_issues_count": 4, - "permissions": { - "project_access": null, - "group_access": { - "access_level": 10, - "notification_level": 3 - } - } -}, { - "id": 5, - "description": "Voluptatem commodi voluptate placeat architecto beatae illum dolores fugiat.", - "default_branch": "master", - "tag_list": [], - "public": false, - "archived": false, - "visibility_level": 0, - "ssh_url_to_repo": "phil@localhost:gitlab-org/gitlab-test.git", - "http_url_to_repo": "http://localhost:3000/gitlab-org/gitlab-test.git", - "web_url": "http://localhost:3000/gitlab-org/gitlab-test", - "name": "Gitlab Test", - "name_with_namespace": "Gitlab Org / Gitlab Test", - "path": "gitlab-test", - "path_with_namespace": "gitlab-org/gitlab-test", - "issues_enabled": true, - "merge_requests_enabled": true, - "wiki_enabled": true, - "builds_enabled": true, - "snippets_enabled": false, - "created_at": "2016-01-13T20:19:53.202Z", - "last_activity_at": "2016-01-13T20:27:41.626Z", - "shared_runners_enabled": true, - "creator_id": 1, - "namespace": { - "id": 3, - "name": "Gitlab Org", - "path": "gitlab-org", - "owner_id": null, - "created_at": "2016-01-13T20:19:48.851Z", - "updated_at": "2016-01-13T20:19:48.851Z", - "description": "Magni mollitia quod quidem soluta nesciunt impedit.", - "avatar": { - "url": null - } - }, - "avatar_url": null, - "star_count": 0, - "forks_count": 0, - "only_allow_merge_if_pipeline_succeeds": false, - "open_issues_count": 5, - "permissions": { - "project_access": null, - "group_access": { - "access_level": 50, - "notification_level": 3 - } - } -}, { - "id": 4, - "description": "Aut molestias quas est ut aperiam officia quod libero.", - "default_branch": "master", - "tag_list": [], - "public": true, - "archived": false, - "visibility_level": 20, - "ssh_url_to_repo": "phil@localhost:gitlab-org/gitlab-shell.git", - "http_url_to_repo": "http://localhost:3000/gitlab-org/gitlab-shell.git", - "web_url": "http://localhost:3000/gitlab-org/gitlab-shell", - "name": "Gitlab Shell", - "name_with_namespace": "Gitlab Org / Gitlab Shell", - "path": "gitlab-shell", - "path_with_namespace": "gitlab-org/gitlab-shell", - "issues_enabled": true, - "merge_requests_enabled": true, - "wiki_enabled": true, - "builds_enabled": true, - "snippets_enabled": false, - "created_at": "2016-01-13T20:19:51.882Z", - "last_activity_at": "2016-01-13T20:27:35.678Z", - "shared_runners_enabled": true, - "creator_id": 1, - "namespace": { - "id": 3, - "name": "Gitlab Org", - "path": "gitlab-org", - "owner_id": null, - "created_at": "2016-01-13T20:19:48.851Z", - "updated_at": "2016-01-13T20:19:48.851Z", - "description": "Magni mollitia quod quidem soluta nesciunt impedit.", - "avatar": { - "url": null - } - }, - "avatar_url": null, - "star_count": 0, - "forks_count": 0, - "only_allow_merge_if_pipeline_succeeds": false, - "open_issues_count": 5, - "permissions": { - "project_access": { - "access_level": 20, - "notification_level": 3 - }, - "group_access": { - "access_level": 50, - "notification_level": 3 - } - } -}, { - "id": 3, - "description": "Excepturi molestiae quia repellendus omnis est illo illum eligendi.", - "default_branch": "master", - "tag_list": [], - "public": true, - "archived": false, - "visibility_level": 20, - "ssh_url_to_repo": "phil@localhost:gitlab-org/gitlab-ci.git", - "http_url_to_repo": "http://localhost:3000/gitlab-org/gitlab-ci.git", - "web_url": "http://localhost:3000/gitlab-org/gitlab-ci", - "name": "Gitlab Ci", - "name_with_namespace": "Gitlab Org / Gitlab Ci", - "path": "gitlab-ci", - "path_with_namespace": "gitlab-org/gitlab-ci", - "issues_enabled": true, - "merge_requests_enabled": true, - "wiki_enabled": true, - "builds_enabled": true, - "snippets_enabled": false, - "created_at": "2016-01-13T20:19:50.346Z", - "last_activity_at": "2016-01-13T20:27:30.115Z", - "shared_runners_enabled": true, - "creator_id": 1, - "namespace": { - "id": 3, - "name": "Gitlab Org", - "path": "gitlab-org", - "owner_id": null, - "created_at": "2016-01-13T20:19:48.851Z", - "updated_at": "2016-01-13T20:19:48.851Z", - "description": "Magni mollitia quod quidem soluta nesciunt impedit.", - "avatar": { - "url": null - } - }, - "avatar_url": null, - "star_count": 0, - "forks_count": 0, - "only_allow_merge_if_pipeline_succeeds": false, - "open_issues_count": 3, - "permissions": { - "project_access": null, - "group_access": { - "access_level": 50, - "notification_level": 3 - } - } -}, { - "id": 2, - "description": "Adipisci quaerat dignissimos enim sed ipsam dolorem quia.", - "default_branch": "master", - "tag_list": [], - "public": false, - "archived": false, - "visibility_level": 10, - "ssh_url_to_repo": "phil@localhost:gitlab-org/gitlab-ce.git", - "http_url_to_repo": "http://localhost:3000/gitlab-org/gitlab-ce.git", - "web_url": "http://localhost:3000/gitlab-org/gitlab-ce", - "name": "Gitlab Ce", - "name_with_namespace": "Gitlab Org / Gitlab Ce", - "path": "gitlab-ce", - "path_with_namespace": "gitlab-org/gitlab-ce", - "issues_enabled": true, - "merge_requests_enabled": true, - "wiki_enabled": true, - "builds_enabled": true, - "snippets_enabled": false, - "created_at": "2016-01-13T20:19:49.065Z", - "last_activity_at": "2016-01-13T20:26:58.454Z", - "shared_runners_enabled": true, - "creator_id": 1, - "namespace": { - "id": 3, - "name": "Gitlab Org", - "path": "gitlab-org", - "owner_id": null, - "created_at": "2016-01-13T20:19:48.851Z", - "updated_at": "2016-01-13T20:19:48.851Z", - "description": "Magni mollitia quod quidem soluta nesciunt impedit.", - "avatar": { - "url": null - } - }, - "avatar_url": null, - "star_count": 0, - "forks_count": 0, - "only_allow_merge_if_pipeline_succeeds": false, - "open_issues_count": 5, - "permissions": { - "project_access": { - "access_level": 30, - "notification_level": 3 - }, - "group_access": { - "access_level": 50, - "notification_level": 3 - } - } -}, { - "id": 1, - "description": "Vel voluptatem maxime saepe ex quia.", - "default_branch": "master", - "tag_list": [], - "public": false, - "archived": false, - "visibility_level": 0, - "ssh_url_to_repo": "phil@localhost:documentcloud/underscore.git", - "http_url_to_repo": "http://localhost:3000/documentcloud/underscore.git", - "web_url": "http://localhost:3000/documentcloud/underscore", - "name": "Underscore", - "name_with_namespace": "Documentcloud / Underscore", - "path": "underscore", - "path_with_namespace": "documentcloud/underscore", - "issues_enabled": true, - "merge_requests_enabled": true, - "wiki_enabled": true, - "builds_enabled": true, - "snippets_enabled": false, - "created_at": "2016-01-13T20:19:45.862Z", - "last_activity_at": "2016-01-13T20:25:03.106Z", - "shared_runners_enabled": true, - "creator_id": 1, - "namespace": { - "id": 2, - "name": "Documentcloud", - "path": "documentcloud", - "owner_id": null, - "created_at": "2016-01-13T20:19:44.464Z", - "updated_at": "2016-01-13T20:19:44.464Z", - "description": "Aut impedit perferendis fuga et ipsa repellat cupiditate et.", - "avatar": { - "url": null - } - }, - "avatar_url": null, - "star_count": 0, - "forks_count": 0, - "only_allow_merge_if_pipeline_succeeds": false, - "open_issues_count": 5, - "permissions": { - "project_access": null, - "group_access": { - "access_level": 50, - "notification_level": 3 - } - } -}] diff --git a/spec/javascripts/fixtures/static/search_autocomplete.html b/spec/javascripts/fixtures/static/search_autocomplete.html deleted file mode 100644 index 29db9020424..00000000000 --- a/spec/javascripts/fixtures/static/search_autocomplete.html +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/spec/javascripts/fixtures/static/signin_tabs.html b/spec/javascripts/fixtures/static/signin_tabs.html deleted file mode 100644 index 7e66ab9394b..00000000000 --- a/spec/javascripts/fixtures/static/signin_tabs.html +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/spec/javascripts/fixtures/static/sketch_viewer.html b/spec/javascripts/fixtures/static/sketch_viewer.html deleted file mode 100644 index e25e554e568..00000000000 --- a/spec/javascripts/fixtures/static/sketch_viewer.html +++ /dev/null @@ -1,3 +0,0 @@ -
-
-
diff --git a/spec/javascripts/fixtures/todos.rb b/spec/javascripts/fixtures/todos.rb deleted file mode 100644 index a7c183d2414..00000000000 --- a/spec/javascripts/fixtures/todos.rb +++ /dev/null @@ -1,54 +0,0 @@ -require 'spec_helper' - -describe 'Todos (JavaScript fixtures)' do - include JavaScriptFixturesHelpers - - let(:admin) { create(:admin) } - let(:namespace) { create(:namespace, name: 'frontend-fixtures' )} - let(:project) { create(:project_empty_repo, namespace: namespace, path: 'todos-project') } - let(:issue_1) { create(:issue, title: 'issue_1', project: project) } - let!(:todo_1) { create(:todo, user: admin, project: project, target: issue_1, created_at: 5.hours.ago) } - let(:issue_2) { create(:issue, title: 'issue_2', project: project) } - let!(:todo_2) { create(:todo, :done, user: admin, project: project, target: issue_2, created_at: 50.hours.ago) } - - before(:all) do - clean_frontend_fixtures('todos/') - end - - after do - remove_repository(project) - end - - describe Dashboard::TodosController, '(JavaScript fixtures)', type: :controller do - render_views - - before do - sign_in(admin) - end - - it 'todos/todos.html' do - get :index - - expect(response).to be_successful - end - end - - describe Projects::TodosController, '(JavaScript fixtures)', type: :controller do - render_views - - before do - sign_in(admin) - end - - it 'todos/todos.json' do - post :create, params: { - namespace_id: namespace, - project_id: project, - issuable_type: 'issue', - issuable_id: issue_2.id - }, format: 'json' - - expect(response).to be_successful - end - end -end diff --git a/spec/javascripts/fixtures/u2f.rb b/spec/javascripts/fixtures/u2f.rb deleted file mode 100644 index 8ecbc0390cd..00000000000 --- a/spec/javascripts/fixtures/u2f.rb +++ /dev/null @@ -1,44 +0,0 @@ -require 'spec_helper' - -context 'U2F' do - include JavaScriptFixturesHelpers - - let(:user) { create(:user, :two_factor_via_u2f, otp_secret: 'otpsecret:coolkids') } - - before(:all) do - clean_frontend_fixtures('u2f/') - end - - describe SessionsController, '(JavaScript fixtures)', type: :controller do - include DeviseHelpers - - render_views - - before do - set_devise_mapping(context: @request) - end - - it 'u2f/authenticate.html' do - allow(controller).to receive(:find_user).and_return(user) - - post :create, params: { user: { login: user.username, password: user.password } } - - expect(response).to be_successful - end - end - - describe Profiles::TwoFactorAuthsController, '(JavaScript fixtures)', type: :controller do - render_views - - before do - sign_in(user) - allow_any_instance_of(Profiles::TwoFactorAuthsController).to receive(:build_qr_code).and_return('qrcode:blackandwhitesquares') - end - - it 'u2f/register.html' do - get :show - - expect(response).to be_successful - end - end -end -- cgit v1.2.1