diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2022-09-02 00:11:46 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2022-09-02 00:11:46 +0000 |
commit | 5b72415235c4a056380758c5d23bff3a738158e7 (patch) | |
tree | 47a04433210a8f3af8b0c1f3f0a5fcf8250dabc4 /spec | |
parent | 64667f74b1613f91fe7eb53cd6610f0693c3a45e (diff) | |
download | gitlab-ce-5b72415235c4a056380758c5d23bff3a738158e7.tar.gz |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec')
-rw-r--r-- | spec/fixtures/blockquote_fence_after.md | 24 | ||||
-rw-r--r-- | spec/fixtures/blockquote_fence_before.md | 24 | ||||
-rw-r--r-- | spec/frontend/google_tag_manager/index_spec.js | 16 | ||||
-rw-r--r-- | spec/frontend/groups/components/visibility_level_dropdown_spec.js | 70 | ||||
-rw-r--r-- | spec/lib/banzai/filter/blockquote_fence_filter_spec.rb | 12 | ||||
-rw-r--r-- | spec/lib/banzai/pipeline/pre_process_pipeline_spec.rb | 17 | ||||
-rw-r--r-- | spec/lib/gitlab/shell_spec.rb | 53 | ||||
-rw-r--r-- | spec/services/issues/build_service_spec.rb | 2 | ||||
-rw-r--r-- | spec/services/projects/create_service_spec.rb | 6 | ||||
-rw-r--r-- | spec/support/rspec_order_todo.yml | 1 |
10 files changed, 133 insertions, 92 deletions
diff --git a/spec/fixtures/blockquote_fence_after.md b/spec/fixtures/blockquote_fence_after.md index 555905bf07e..18500d94c7a 100644 --- a/spec/fixtures/blockquote_fence_after.md +++ b/spec/fixtures/blockquote_fence_after.md @@ -129,3 +129,27 @@ Double `>>>` inside HTML inside blockquote: > > Quote + +Requires a leading blank line +>>> +Not a quote +>>> + +Requires a trailing blank line + +>>> +Not a quote +>>> +Lorem + +Triple quoting is not our blockquote + +>>> foo +>>> bar +>>> +> baz + +> boo +>>> far +>>> +>>> faz diff --git a/spec/fixtures/blockquote_fence_before.md b/spec/fixtures/blockquote_fence_before.md index d52eec72896..895bff73404 100644 --- a/spec/fixtures/blockquote_fence_before.md +++ b/spec/fixtures/blockquote_fence_before.md @@ -129,3 +129,27 @@ Quote Quote >>> + +Requires a leading blank line +>>> +Not a quote +>>> + +Requires a trailing blank line + +>>> +Not a quote +>>> +Lorem + +Triple quoting is not our blockquote + +>>> foo +>>> bar +>>> +> baz + +> boo +>>> far +>>> +>>> faz diff --git a/spec/frontend/google_tag_manager/index_spec.js b/spec/frontend/google_tag_manager/index_spec.js index 9c4b23e3a70..ec9e1ef8e5f 100644 --- a/spec/frontend/google_tag_manager/index_spec.js +++ b/spec/frontend/google_tag_manager/index_spec.js @@ -8,7 +8,6 @@ import { trackSaasTrialSubmit, trackSaasTrialSkip, trackSaasTrialGroup, - trackSaasTrialProject, trackSaasTrialGetStarted, trackTrialAcceptTerms, trackCheckout, @@ -150,9 +149,6 @@ describe('~/google_tag_manager/index', () => { createTestCase(trackSaasTrialGroup, { forms: [{ cls: 'js-saas-trial-group', expectation: { event: 'saasTrialGroup' } }], }), - createTestCase(trackSaasTrialProject, { - forms: [{ id: 'new_project', expectation: { event: 'saasTrialProject' } }], - }), createTestCase(trackProjectImport, { links: [ { @@ -481,11 +477,11 @@ describe('~/google_tag_manager/index', () => { }); it('no ops', () => { - setHTMLFixture(createHTML({ forms: [{ id: 'new_project' }] })); + setHTMLFixture(createHTML({ forms: [{ cls: 'js-saas-trial-group' }] })); - trackSaasTrialProject(); + trackSaasTrialGroup(); - triggerEvent('#new_project', 'submit'); + triggerEvent('.js-saas-trial-group', 'submit'); expect(spy).not.toHaveBeenCalled(); expect(logError).not.toHaveBeenCalled(); @@ -506,11 +502,11 @@ describe('~/google_tag_manager/index', () => { }); it('logs error', () => { - setHTMLFixture(createHTML({ forms: [{ id: 'new_project' }] })); + setHTMLFixture(createHTML({ forms: [{ cls: 'js-saas-trial-group' }] })); - trackSaasTrialProject(); + trackSaasTrialGroup(); - triggerEvent('#new_project', 'submit'); + triggerEvent('.js-saas-trial-group', 'submit'); expect(logError).toHaveBeenCalledWith( 'Unexpected error while pushing to dataLayer', diff --git a/spec/frontend/groups/components/visibility_level_dropdown_spec.js b/spec/frontend/groups/components/visibility_level_dropdown_spec.js deleted file mode 100644 index 49d0b182f7f..00000000000 --- a/spec/frontend/groups/components/visibility_level_dropdown_spec.js +++ /dev/null @@ -1,70 +0,0 @@ -import { GlDropdown, GlDropdownItem } from '@gitlab/ui'; -import { shallowMount } from '@vue/test-utils'; -import Component from '~/groups/components/visibility_level_dropdown.vue'; - -describe('Visibility Level Dropdown', () => { - let wrapper; - - const options = [ - { level: 0, label: 'Private', description: 'Private description' }, - { level: 20, label: 'Public', description: 'Public description' }, - ]; - const defaultLevel = 0; - - const createComponent = (propsData) => { - wrapper = shallowMount(Component, { - propsData, - }); - }; - - beforeEach(() => { - createComponent({ - visibilityLevelOptions: options, - defaultLevel, - }); - }); - - afterEach(() => { - wrapper.destroy(); - wrapper = null; - }); - - const hiddenInputValue = () => - wrapper.find("input[name='group[visibility_level]']").attributes('value'); - const dropdownText = () => wrapper.findComponent(GlDropdown).props('text'); - const findDropdownItems = () => - wrapper.findAllComponents(GlDropdownItem).wrappers.map((option) => ({ - text: option.text(), - secondaryText: option.props('secondaryText'), - })); - - describe('Default values', () => { - it('sets the value of the hidden input to the default value', () => { - expect(hiddenInputValue()).toBe(options[0].level.toString()); - }); - - it('sets the text of the dropdown to the default value', () => { - expect(dropdownText()).toBe(options[0].label); - }); - - it('shows all dropdown options', () => { - expect(findDropdownItems()).toEqual( - options.map(({ label, description }) => ({ text: label, secondaryText: description })), - ); - }); - }); - - describe('Selecting an option', () => { - beforeEach(() => { - wrapper.findAllComponents(GlDropdownItem).at(1).vm.$emit('click'); - }); - - it('sets the value of the hidden input to the selected value', () => { - expect(hiddenInputValue()).toBe(options[1].level.toString()); - }); - - it('sets the text of the dropdown to the selected value', () => { - expect(dropdownText()).toBe(options[1].label); - }); - }); -}); diff --git a/spec/lib/banzai/filter/blockquote_fence_filter_spec.rb b/spec/lib/banzai/filter/blockquote_fence_filter_spec.rb index 2d326bd77a6..36e8002b796 100644 --- a/spec/lib/banzai/filter/blockquote_fence_filter_spec.rb +++ b/spec/lib/banzai/filter/blockquote_fence_filter_spec.rb @@ -14,10 +14,22 @@ RSpec.describe Banzai::Filter::BlockquoteFenceFilter do expect(output).to eq(expected) end + it 'does not require newlines at start or end of string' do + expect(filter(">>>\ntest\n>>>")).to eq("\n> test\n") + end + it 'allows trailing whitespace on blockquote fence lines' do expect(filter(">>> \ntest\n>>> ")).to eq("\n> test\n") end + context 'when feature flag is turned off' do + it 'does not require a leading or trailing blank line' do + stub_feature_flags(markdown_corrected_blockquote: false) + + expect(filter("Foo\n>>>\ntest\n>>>\nBar")).to eq("Foo\n\n> test\n\nBar") + end + end + context 'when incomplete blockquote fences with multiple blocks are present' do it 'does not raise timeout error' do test_string = ">>>#{"\n```\nfoo\n```" * 20}" diff --git a/spec/lib/banzai/pipeline/pre_process_pipeline_spec.rb b/spec/lib/banzai/pipeline/pre_process_pipeline_spec.rb index 5021ef3a79a..303d0fcb6c2 100644 --- a/spec/lib/banzai/pipeline/pre_process_pipeline_spec.rb +++ b/spec/lib/banzai/pipeline/pre_process_pipeline_spec.rb @@ -32,4 +32,21 @@ RSpec.describe Banzai::Pipeline::PreProcessPipeline do expect(result[:output]).to eq('foo foo f...') end + + context 'when multiline blockquote' do + it 'data-sourcepos references correct line in source markdown' do + markdown = <<~MD + >>> + foo + >>> + MD + + pipeline_output = described_class.call(markdown, {})[:output] + pipeline_output = Banzai::Pipeline::PlainMarkdownPipeline.call(pipeline_output, {})[:output] + sourcepos = pipeline_output.at('blockquote')['data-sourcepos'] + source_line = sourcepos.split(':').first.to_i + + expect(markdown.lines[source_line - 1]).to eq "foo\n" + end + end end diff --git a/spec/lib/gitlab/shell_spec.rb b/spec/lib/gitlab/shell_spec.rb index 891b3639709..785429aa3b0 100644 --- a/spec/lib/gitlab/shell_spec.rb +++ b/spec/lib/gitlab/shell_spec.rb @@ -9,9 +9,13 @@ RSpec.describe Gitlab::Shell do let(:repository) { project.repository } let(:gitlab_shell) { described_class.new } + before do + described_class.instance_variable_set(:@secret_token, nil) + end + it { is_expected.to respond_to :remove_repository } - describe 'memoized secret_token' do + describe '.secret_token' do let(:secret_file) { 'tmp/tests/.secret_shell_test' } let(:link_file) { 'tmp/tests/shell-secret-test/.gitlab_shell_secret' } @@ -19,7 +23,6 @@ RSpec.describe Gitlab::Shell do allow(Gitlab.config.gitlab_shell).to receive(:secret_file).and_return(secret_file) allow(Gitlab.config.gitlab_shell).to receive(:path).and_return('tmp/tests/shell-secret-test') FileUtils.mkdir('tmp/tests/shell-secret-test') - described_class.ensure_secret_token! end after do @@ -27,13 +30,47 @@ RSpec.describe Gitlab::Shell do FileUtils.rm_rf(secret_file) end - it 'creates and links the secret token file' do - secret_token = described_class.secret_token + shared_examples 'creates and links the secret token file' do + it 'creates and links the secret token file' do + secret_token = described_class.secret_token + + expect(File.exist?(secret_file)).to be(true) + expect(File.read(secret_file).chomp).to eq(secret_token) + expect(File.symlink?(link_file)).to be(true) + expect(File.readlink(link_file)).to eq(secret_file) + end + end + + describe 'memoized secret_token' do + before do + described_class.ensure_secret_token! + end + + it_behaves_like 'creates and links the secret token file' + end + + context 'when link_file is a broken symbolic link' do + before do + File.symlink('tmp/tests/non_existing_file', link_file) + described_class.ensure_secret_token! + end + + it_behaves_like 'creates and links the secret token file' + end + + context 'when secret_file exists' do + let(:secret_token) { 'secret-token' } - expect(File.exist?(secret_file)).to be(true) - expect(File.read(secret_file).chomp).to eq(secret_token) - expect(File.symlink?(link_file)).to be(true) - expect(File.readlink(link_file)).to eq(secret_file) + before do + File.write(secret_file, 'secret-token') + described_class.ensure_secret_token! + end + + it_behaves_like 'creates and links the secret token file' + + it 'reads the token from the existing file' do + expect(described_class.secret_token).to eq(secret_token) + end end end diff --git a/spec/services/issues/build_service_spec.rb b/spec/services/issues/build_service_spec.rb index 304e4bb3ebb..838e0675372 100644 --- a/spec/services/issues/build_service_spec.rb +++ b/spec/services/issues/build_service_spec.rb @@ -63,12 +63,14 @@ RSpec.describe Issues::BuildService do it 'wraps the note in a blockquote' do note_text = "This is a string\n"\ + "\n"\ ">>>\n"\ "with a blockquote\n"\ "> That has a quote\n"\ ">>>\n" note_result = " > This is a string\n"\ " > \n"\ + " > \n"\ " > > with a blockquote\n"\ " > > > That has a quote\n"\ " > \n" diff --git a/spec/services/projects/create_service_spec.rb b/spec/services/projects/create_service_spec.rb index e112c1e2497..edde2e0a247 100644 --- a/spec/services/projects/create_service_spec.rb +++ b/spec/services/projects/create_service_spec.rb @@ -417,10 +417,10 @@ RSpec.describe Projects::CreateService, '#execute' do expect(imported_project.import_url).to eq('http://import-url') end - it 'tracks for the combined_registration experiment', :experiment do - expect(experiment(:combined_registration)).to track(:import_project).on_next_instance - + it 'tracks for imported project' do imported_project + + expect_snowplow_event(category: described_class.name, action: 'import_project', user: user) end describe 'import scheduling' do diff --git a/spec/support/rspec_order_todo.yml b/spec/support/rspec_order_todo.yml index bcd83c431e4..f297734b4b7 100644 --- a/spec/support/rspec_order_todo.yml +++ b/spec/support/rspec_order_todo.yml @@ -216,7 +216,6 @@ - './ee/spec/elastic/migrate/20220512150000_pause_indexing_for_unsupported_es_versions_spec.rb' - './ee/spec/elastic/migrate/20220613120500_migrate_commits_to_separate_index_spec.rb' - './ee/spec/elastic/migrate/20220713103500_delete_commits_from_original_index_spec.rb' -- './ee/spec/experiments/combined_registration_experiment_spec.rb' - './ee/spec/factories/lfs_object_spec.rb' - './ee/spec/features/account_recovery_regular_check_spec.rb' - './ee/spec/features/admin/admin_audit_logs_spec.rb' |