diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2020-11-23 14:57:46 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2020-11-23 14:57:46 +0000 |
commit | 64fc6a9b19faca58ad0087b1a1cb11f7ed910015 (patch) | |
tree | fe4e98cfab4289850ee15965ae0b04648ee90207 /spec | |
parent | 6317794da29af0bccf95dece5b57b2be2c0977a4 (diff) | |
download | gitlab-ce-64fc6a9b19faca58ad0087b1a1cb11f7ed910015.tar.gz |
Add latest changes from gitlab-org/gitlab@13-6-stable-ee
Diffstat (limited to 'spec')
8 files changed, 50 insertions, 235 deletions
diff --git a/spec/features/alert_management/alert_management_list_spec.rb b/spec/features/alert_management/alert_management_list_spec.rb index c2514d80474..37658f8c545 100644 --- a/spec/features/alert_management/alert_management_list_spec.rb +++ b/spec/features/alert_management/alert_management_list_spec.rb @@ -18,7 +18,7 @@ RSpec.describe 'Alert Management index', :js do wait_for_requests end - context 'when a developer displays the alert list and the alert service is not enabled' do + context 'when a developer displays the alert list and alert integrations are not enabled' do it 'shows the alert page title' do expect(page).to have_content('Alerts') end @@ -38,8 +38,8 @@ RSpec.describe 'Alert Management index', :js do end end - context 'when a developer displays the alert list and the alert service is enabled' do - let_it_be(:alerts_service) { create(:alerts_service, project: project) } + context 'when a developer displays the alert list and an HTTP integration is enabled' do + let_it_be(:integration) { create(:alert_management_http_integration, project: project) } it 'shows the alert page title' do expect(page).to have_content('Alerts') diff --git a/spec/finders/ci/commit_statuses_finder_spec.rb b/spec/finders/ci/commit_statuses_finder_spec.rb index 1aa9cb12432..05a1a98cfe0 100644 --- a/spec/finders/ci/commit_statuses_finder_spec.rb +++ b/spec/finders/ci/commit_statuses_finder_spec.rb @@ -152,8 +152,8 @@ RSpec.describe Ci::CommitStatusesFinder, '#execute' do project.project_feature.update!(builds_access_level: ProjectFeature::PRIVATE) end - it 'returns nil' do - expect(subject).to be_empty + it 'returns a blank hash' do + expect(subject).to eq({}) end end @@ -170,8 +170,8 @@ RSpec.describe Ci::CommitStatusesFinder, '#execute' do status: :running) end - it 'returns nil' do - expect(private_subject).to be_empty + it 'returns a blank hash' do + expect(private_subject).to eq({}) end end end diff --git a/spec/frontend/vue_shared/components/runner_instructions/mock_data.js b/spec/frontend/vue_shared/components/runner_instructions/mock_data.js deleted file mode 100644 index 01f7f3d49c7..00000000000 --- a/spec/frontend/vue_shared/components/runner_instructions/mock_data.js +++ /dev/null @@ -1,107 +0,0 @@ -export const mockGraphqlRunnerPlatforms = { - data: { - runnerPlatforms: { - nodes: [ - { - name: 'linux', - humanReadableName: 'Linux', - architectures: { - nodes: [ - { - name: 'amd64', - downloadLocation: - 'https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64', - __typename: 'RunnerArchitecture', - }, - { - name: '386', - downloadLocation: - 'https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-386', - __typename: 'RunnerArchitecture', - }, - { - name: 'arm', - downloadLocation: - 'https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-arm', - __typename: 'RunnerArchitecture', - }, - { - name: 'arm64', - downloadLocation: - 'https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-arm64', - __typename: 'RunnerArchitecture', - }, - ], - __typename: 'RunnerArchitectureConnection', - }, - __typename: 'RunnerPlatform', - }, - { - name: 'osx', - humanReadableName: 'macOS', - architectures: { - nodes: [ - { - name: 'amd64', - downloadLocation: - 'https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-darwin-amd64', - __typename: 'RunnerArchitecture', - }, - ], - __typename: 'RunnerArchitectureConnection', - }, - __typename: 'RunnerPlatform', - }, - { - name: 'windows', - humanReadableName: 'Windows', - architectures: { - nodes: [ - { - name: 'amd64', - downloadLocation: - 'https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-windows-amd64.exe', - __typename: 'RunnerArchitecture', - }, - { - name: '386', - downloadLocation: - 'https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-windows-386.exe', - __typename: 'RunnerArchitecture', - }, - ], - __typename: 'RunnerArchitectureConnection', - }, - __typename: 'RunnerPlatform', - }, - { - name: 'docker', - humanReadableName: 'Docker', - architectures: null, - __typename: 'RunnerPlatform', - }, - { - name: 'kubernetes', - humanReadableName: 'Kubernetes', - architectures: null, - __typename: 'RunnerPlatform', - }, - ], - __typename: 'RunnerPlatformConnection', - }, - project: { id: 'gid://gitlab/Project/1', __typename: 'Project' }, - group: null, - }, -}; - -export const mockGraphqlInstructions = { - data: { - runnerSetup: { - installInstructions: - "# Download the binary for your system\nsudo curl -L --output /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64\n\n# Give it permissions to execute\nsudo chmod +x /usr/local/bin/gitlab-runner\n\n# Create a GitLab CI user\nsudo useradd --comment 'GitLab Runner' --create-home gitlab-runner --shell /bin/bash\n\n# Install and run as service\nsudo gitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runner\nsudo gitlab-runner start\n", - registerInstructions: - 'sudo gitlab-runner register --url http://192.168.1.81:3000/ --registration-token GE5gsjeep_HAtBf9s3Yz', - __typename: 'RunnerSetup', - }, - }, -}; diff --git a/spec/frontend/vue_shared/components/runner_instructions/runner_instructions_spec.js b/spec/frontend/vue_shared/components/runner_instructions/runner_instructions_spec.js deleted file mode 100644 index afbcee506c7..00000000000 --- a/spec/frontend/vue_shared/components/runner_instructions/runner_instructions_spec.js +++ /dev/null @@ -1,119 +0,0 @@ -import { shallowMount, createLocalVue } from '@vue/test-utils'; -import VueApollo from 'vue-apollo'; -import createMockApollo from 'jest/helpers/mock_apollo_helper'; -import RunnerInstructions from '~/vue_shared/components/runner_instructions/runner_instructions.vue'; -import getRunnerPlatforms from '~/vue_shared/components/runner_instructions/graphql/queries/get_runner_platforms.query.graphql'; -import getRunnerSetupInstructions from '~/vue_shared/components/runner_instructions/graphql/queries/get_runner_setup.query.graphql'; - -import { mockGraphqlRunnerPlatforms, mockGraphqlInstructions } from './mock_data'; - -const projectPath = 'gitlab-org/gitlab'; -const localVue = createLocalVue(); -localVue.use(VueApollo); - -describe('RunnerInstructions component', () => { - let wrapper; - let fakeApollo; - - const findModalButton = () => wrapper.find('[data-testid="show-modal-button"]'); - const findPlatformButtons = () => wrapper.findAll('[data-testid="platform-button"]'); - const findArchitectureDropdownItems = () => - wrapper.findAll('[data-testid="architecture-dropdown-item"]'); - const findBinaryInstructionsSection = () => wrapper.find('[data-testid="binary-instructions"]'); - const findRunnerInstructionsSection = () => wrapper.find('[data-testid="runner-instructions"]'); - - beforeEach(() => { - const requestHandlers = [ - [getRunnerPlatforms, jest.fn().mockResolvedValue(mockGraphqlRunnerPlatforms)], - [getRunnerSetupInstructions, jest.fn().mockResolvedValue(mockGraphqlInstructions)], - ]; - - fakeApollo = createMockApollo(requestHandlers); - - wrapper = shallowMount(RunnerInstructions, { - provide: { - projectPath, - }, - localVue, - apolloProvider: fakeApollo, - }); - }); - - afterEach(() => { - wrapper.destroy(); - wrapper = null; - }); - - it('should show the "Show Runner installation instructions" button', () => { - const button = findModalButton(); - - expect(button.exists()).toBe(true); - expect(button.text()).toBe('Show Runner installation instructions'); - }); - - it('should contain a number of platforms buttons', () => { - const buttons = findPlatformButtons(); - - expect(buttons).toHaveLength(mockGraphqlRunnerPlatforms.data.runnerPlatforms.nodes.length); - }); - - it('should contain a number of dropdown items for the architecture options', () => { - const platformButton = findPlatformButtons().at(0); - platformButton.vm.$emit('click'); - - return wrapper.vm.$nextTick(() => { - const dropdownItems = findArchitectureDropdownItems(); - - expect(dropdownItems).toHaveLength( - mockGraphqlRunnerPlatforms.data.runnerPlatforms.nodes[0].architectures.nodes.length, - ); - }); - }); - - it('should display the binary installation instructions for a selected architecture', async () => { - const platformButton = findPlatformButtons().at(0); - platformButton.vm.$emit('click'); - - await wrapper.vm.$nextTick(); - - const dropdownItem = findArchitectureDropdownItems().at(0); - dropdownItem.vm.$emit('click'); - - await wrapper.vm.$nextTick(); - - const runner = findBinaryInstructionsSection(); - - expect(runner.text()).toEqual( - expect.stringContaining('sudo chmod +x /usr/local/bin/gitlab-runner'), - ); - expect(runner.text()).toEqual( - expect.stringContaining( - `sudo useradd --comment 'GitLab Runner' --create-home gitlab-runner --shell /bin/bash`, - ), - ); - expect(runner.text()).toEqual( - expect.stringContaining( - 'sudo gitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runner', - ), - ); - expect(runner.text()).toEqual(expect.stringContaining('sudo gitlab-runner start')); - }); - - it('should display the runner register instructions for a selected architecture', async () => { - const platformButton = findPlatformButtons().at(0); - platformButton.vm.$emit('click'); - - await wrapper.vm.$nextTick(); - - const dropdownItem = findArchitectureDropdownItems().at(0); - dropdownItem.vm.$emit('click'); - - await wrapper.vm.$nextTick(); - - const runner = findRunnerInstructionsSection(); - - expect(runner.text()).toEqual( - expect.stringContaining(mockGraphqlInstructions.data.runnerSetup.registerInstructions), - ); - }); -}); diff --git a/spec/helpers/projects/alert_management_helper_spec.rb b/spec/helpers/projects/alert_management_helper_spec.rb index 83b89abde58..f6d0c9ca49a 100644 --- a/spec/helpers/projects/alert_management_helper_spec.rb +++ b/spec/helpers/projects/alert_management_helper_spec.rb @@ -83,6 +83,28 @@ RSpec.describe Projects::AlertManagementHelper do end end + context 'with http integration' do + let_it_be(:integration) { create(:alert_management_http_integration, project: project) } + + context 'when integration is active' do + it 'enables alert management' do + expect(data).to include( + 'alert-management-enabled' => 'true' + ) + end + end + + context 'when integration is inactive' do + it 'disables alert management' do + integration.update!(active: false) + + expect(data).to include( + 'alert-management-enabled' => 'false' + ) + end + end + end + context 'when user does not have requisite enablement permissions' do let(:user_can_enable_alert_management) { false } diff --git a/spec/services/packages/create_event_service_spec.rb b/spec/services/packages/create_event_service_spec.rb index 55703e9127f..4db7687bb24 100644 --- a/spec/services/packages/create_event_service_spec.rb +++ b/spec/services/packages/create_event_service_spec.rb @@ -25,7 +25,7 @@ RSpec.describe Packages::CreateEventService do stub_feature_flags(collect_package_events: false) end - it 'does not create an event object' do + it 'does not create an event' do expect { subject }.not_to change { Packages::Event.count } end end @@ -43,6 +43,16 @@ RSpec.describe Packages::CreateEventService do expect(subject.event_scope).to eq(expected_scope) expect(subject.event_type).to eq(event_name) end + + context 'on a read-only instance' do + before do + allow(Gitlab::Database).to receive(:read_only?).and_return(true) + end + + it 'does not create an event' do + expect { subject }.not_to change { Packages::Event.count } + end + end end end diff --git a/spec/services/projects/transfer_service_spec.rb b/spec/services/projects/transfer_service_spec.rb index 3ae96d7a5ab..8e6147e7a3c 100644 --- a/spec/services/projects/transfer_service_spec.rb +++ b/spec/services/projects/transfer_service_spec.rb @@ -9,7 +9,7 @@ RSpec.describe Projects::TransferService do let_it_be(:group) { create(:group) } let(:project) { create(:project, :repository, :legacy_storage, namespace: user.namespace) } - subject(:execute_transfer) { described_class.new(project, user).execute(group) } + subject(:execute_transfer) { described_class.new(project, user).execute(group).tap { project.reload } } context 'with npm packages' do before do diff --git a/spec/views/projects/tags/index.html.haml_spec.rb b/spec/views/projects/tags/index.html.haml_spec.rb index 8cc86b75873..dc008875062 100644 --- a/spec/views/projects/tags/index.html.haml_spec.rb +++ b/spec/views/projects/tags/index.html.haml_spec.rb @@ -81,5 +81,14 @@ RSpec.describe 'projects/tags/index.html.haml' do expect(page.all('.tags .content-list li')).not_to have_css 'svg.s24' end + + it 'shows no build status or placeholder when pipelines are private' do + project.project_feature.update!(builds_access_level: ProjectFeature::PRIVATE) + assign(:tag_pipeline_statuses, Ci::CommitStatusesFinder.new(project, project.repository, build(:user), tags).execute) + + render + + expect(page.all('.tags .content-list li')).not_to have_css 'svg.s24' + end end end |