From 7a3e605350fd501661d2cd0fe72440bf0773f4b7 Mon Sep 17 00:00:00 2001 From: Mike Greiling Date: Wed, 17 Oct 2018 02:21:28 -0500 Subject: [PATCH] Resolve eslint violations --- .../javascripts/bootstrap_linked_tabs_spec.js | 8 +-- .../native_form_variable_list_spec.js | 1 + .../components/application_row_spec.js | 2 + .../environments/environment_actions_spec.js | 1 + .../filtered_search_visual_tokens_spec.js | 1 + .../image_diff/replaced_image_diff_spec.js | 4 ++ .../integration_settings_form_spec.js | 2 + .../issue_show/components/app_spec.js | 5 +- .../issue_show/components/description_spec.js | 3 +- .../jobs/components/trigger_block_spec.js | 2 + .../monitoring/dashboard_state_spec.js | 4 ++ spec/javascripts/new_branch_spec.js | 60 +++++++++---------- .../cells/output/html_sanitize_tests.js | 2 +- spec/javascripts/oauth_remember_me_spec.js | 1 + .../javascripts/pipelines/empty_state_spec.js | 1 + spec/javascripts/pipelines/pipelines_spec.js | 3 + .../pipelines/pipelines_table_spec.js | 3 + spec/javascripts/pipelines_spec.js | 4 +- .../prometheus_metrics_spec.js | 1 + .../reports/components/modal_spec.js | 1 + spec/javascripts/signin_tabs_memoizer_spec.js | 1 + spec/javascripts/toggle_buttons_spec.js | 2 + .../components/deployment_spec.js | 2 + .../components/mr_widget_author_time_spec.js | 1 + .../components/mr_widget_header_spec.js | 2 + .../components/mr_widget_merge_help_spec.js | 2 + ...idget_merge_when_pipeline_succeeds_spec.js | 2 + .../states/mr_widget_nothing_to_merge_spec.js | 1 + .../mr_widget_unresolved_discussions_spec.js | 2 + .../components/panel_resizer_spec.js | 1 + .../dropdown_create_label_spec.js | 1 + 31 files changed, 86 insertions(+), 40 deletions(-) diff --git a/spec/javascripts/bootstrap_linked_tabs_spec.js b/spec/javascripts/bootstrap_linked_tabs_spec.js index c52141dbf2d..c3e3d78ff63 100644 --- a/spec/javascripts/bootstrap_linked_tabs_spec.js +++ b/spec/javascripts/bootstrap_linked_tabs_spec.js @@ -13,8 +13,8 @@ describe('Linked Tabs', () => { }); it('should activate the tab correspondent to the given action', () => { - const linkedTabs = new LinkedTabs({ - // eslint-disable-line + // eslint-disable-next-line no-new + new LinkedTabs({ action: 'tab1', defaultAction: 'tab1', parentEl: '.linked-tabs', @@ -24,8 +24,8 @@ describe('Linked Tabs', () => { }); it('should active the default tab action when the action is show', () => { - const linkedTabs = new LinkedTabs({ - // eslint-disable-line + // eslint-disable-next-line no-new + new LinkedTabs({ action: 'show', defaultAction: 'tab1', parentEl: '.linked-tabs', diff --git a/spec/javascripts/ci_variable_list/native_form_variable_list_spec.js b/spec/javascripts/ci_variable_list/native_form_variable_list_spec.js index ac956ed97e0..997d0d54d79 100644 --- a/spec/javascripts/ci_variable_list/native_form_variable_list_spec.js +++ b/spec/javascripts/ci_variable_list/native_form_variable_list_spec.js @@ -23,6 +23,7 @@ describe('NativeFormVariableList', () => { expect($row.find('.js-ci-variable-input-key').attr('name')).toBe( 'schedule[variables_attributes][][key]', ); + expect($row.find('.js-ci-variable-input-value').attr('name')).toBe( 'schedule[variables_attributes][][secret_value]', ); diff --git a/spec/javascripts/clusters/components/application_row_spec.js b/spec/javascripts/clusters/components/application_row_spec.js index 1402c49d622..7eb3e47d721 100644 --- a/spec/javascripts/clusters/components/application_row_spec.js +++ b/spec/javascripts/clusters/components/application_row_spec.js @@ -239,6 +239,7 @@ describe('Application Row', () => { expect(generalErrorMessage.textContent.trim()).toEqual( `Something went wrong while installing ${DEFAULT_APPLICATION_STATE.title}`, ); + expect(statusErrorMessage.textContent.trim()).toEqual(statusReason); }); @@ -260,6 +261,7 @@ describe('Application Row', () => { expect(generalErrorMessage.textContent.trim()).toEqual( `Something went wrong while installing ${DEFAULT_APPLICATION_STATE.title}`, ); + expect(requestErrorMessage.textContent.trim()).toEqual(requestReason); }); }); diff --git a/spec/javascripts/environments/environment_actions_spec.js b/spec/javascripts/environments/environment_actions_spec.js index c9a3c8c314d..223153d4e31 100644 --- a/spec/javascripts/environments/environment_actions_spec.js +++ b/spec/javascripts/environments/environment_actions_spec.js @@ -43,6 +43,7 @@ describe('Actions Component', () => { expect( component.$el.querySelector('.dropdown-new').getAttribute('data-original-title'), ).toEqual('Deploy to...'); + expect(component.$el.querySelector('.dropdown-new').getAttribute('aria-label')).toEqual( 'Deploy to...', ); diff --git a/spec/javascripts/filtered_search/filtered_search_visual_tokens_spec.js b/spec/javascripts/filtered_search/filtered_search_visual_tokens_spec.js index 9676055fbae..0c1d5f5b0b4 100644 --- a/spec/javascripts/filtered_search/filtered_search_visual_tokens_spec.js +++ b/spec/javascripts/filtered_search/filtered_search_visual_tokens_spec.js @@ -138,6 +138,7 @@ describe('Filtered Search Visual Tokens', () => { expect(subject.getEndpointWithQueryParams(endpoint, singleQueryParams)).toBe( `${endpoint}?foo=true`, ); + expect(subject.getEndpointWithQueryParams(endpoint, multipleQueryParams)).toBe( `${endpoint}?foo=true&bar=true`, ); diff --git a/spec/javascripts/image_diff/replaced_image_diff_spec.js b/spec/javascripts/image_diff/replaced_image_diff_spec.js index 689e06b7e13..62e7c8b6c6a 100644 --- a/spec/javascripts/image_diff/replaced_image_diff_spec.js +++ b/spec/javascripts/image_diff/replaced_image_diff_spec.js @@ -90,9 +90,11 @@ describe('ReplacedImageDiff', () => { expect(imageFrameEls[viewTypes.TWO_UP]).toEqual( element.querySelector('.two-up .js-image-frame'), ); + expect(imageFrameEls[viewTypes.SWIPE]).toEqual( element.querySelector('.swipe .js-image-frame'), ); + expect(imageFrameEls[viewTypes.ONION_SKIN]).toEqual( element.querySelector('.onion-skin .js-image-frame'), ); @@ -105,9 +107,11 @@ describe('ReplacedImageDiff', () => { expect(viewModesEls[viewTypes.TWO_UP]).toEqual( element.querySelector('.view-modes-menu .two-up'), ); + expect(viewModesEls[viewTypes.SWIPE]).toEqual( element.querySelector('.view-modes-menu .swipe'), ); + expect(viewModesEls[viewTypes.ONION_SKIN]).toEqual( element.querySelector('.view-modes-menu .onion-skin'), ); diff --git a/spec/javascripts/integrations/integration_settings_form_spec.js b/spec/javascripts/integrations/integration_settings_form_spec.js index 9a1b2e6b7f4..4f4c9a7b463 100644 --- a/spec/javascripts/integrations/integration_settings_form_spec.js +++ b/spec/javascripts/integrations/integration_settings_form_spec.js @@ -164,6 +164,7 @@ describe('IntegrationSettingsForm', () => { .text() .trim(), ).toEqual('Test failed. some error'); + expect($flashContainer.find('.flash-action')).toBeDefined(); expect( $flashContainer @@ -197,6 +198,7 @@ describe('IntegrationSettingsForm', () => { .text() .trim(), ).toEqual('Validations failed. some error'); + expect($flashContainer.find('.flash-action')).toBeDefined(); expect( $flashContainer diff --git a/spec/javascripts/issue_show/components/app_spec.js b/spec/javascripts/issue_show/components/app_spec.js index c9d2044b054..2bd1b3996dc 100644 --- a/spec/javascripts/issue_show/components/app_spec.js +++ b/spec/javascripts/issue_show/components/app_spec.js @@ -74,6 +74,7 @@ describe('Issuable output', () => { expect(vm.$el.querySelector('.js-task-list-field').value).toContain( 'this is a description', ); + expect(formatText(editedText.innerText)).toMatch(/Edited[\s\S]+?by Some User/); expect(editedText.querySelector('.author-link').href).toMatch(/\/some_user$/); expect(editedText.querySelector('time')).toBeTruthy(); @@ -91,6 +92,7 @@ describe('Issuable output', () => { expect(formatText(vm.$el.querySelector('.edited-text').innerText)).toMatch( /Edited[\s\S]+?by Other User/, ); + expect(editedText.querySelector('.author-link').href).toMatch(/\/other_user$/); expect(editedText.querySelector('time')).toBeTruthy(); }) @@ -294,8 +296,9 @@ describe('Issuable output', () => { it('opens recaptcha modal if update rejected as spam', done => { function mockScriptSrc() { const recaptchaChild = vm.$children.find( + // eslint-disable-next-line no-underscore-dangle child => child.$options._componentTag === 'recaptcha-modal', - ); // eslint-disable-line no-underscore-dangle + ); recaptchaChild.scriptSrc = '//scriptsrc'; } diff --git a/spec/javascripts/issue_show/components/description_spec.js b/spec/javascripts/issue_show/components/description_spec.js index 6a4de8ffa1a..463f3c89926 100644 --- a/spec/javascripts/issue_show/components/description_spec.js +++ b/spec/javascripts/issue_show/components/description_spec.js @@ -54,8 +54,9 @@ describe('Description component', () => { it('opens recaptcha dialog if update rejected as spam', done => { let modal; const recaptchaChild = vm.$children.find( + // eslint-disable-next-line no-underscore-dangle child => child.$options._componentTag === 'recaptcha-modal', - ); // eslint-disable-line no-underscore-dangle + ); recaptchaChild.scriptSrc = '//scriptsrc'; diff --git a/spec/javascripts/jobs/components/trigger_block_spec.js b/spec/javascripts/jobs/components/trigger_block_spec.js index 9911f98a406..7254851a9e7 100644 --- a/spec/javascripts/jobs/components/trigger_block_spec.js +++ b/spec/javascripts/jobs/components/trigger_block_spec.js @@ -51,10 +51,12 @@ describe('Trigger block', () => { expect(vm.$el.querySelector('.js-build-variables').textContent).toContain( 'UPLOAD_TO_GCS', ); + expect(vm.$el.querySelector('.js-build-variables').textContent).toContain('false'); expect(vm.$el.querySelector('.js-build-variables').textContent).toContain( 'UPLOAD_TO_S3', ); + expect(vm.$el.querySelector('.js-build-variables').textContent).toContain('true'); }) .then(done) diff --git a/spec/javascripts/monitoring/dashboard_state_spec.js b/spec/javascripts/monitoring/dashboard_state_spec.js index 737243533a5..6b2be83aa8c 100644 --- a/spec/javascripts/monitoring/dashboard_state_spec.js +++ b/spec/javascripts/monitoring/dashboard_state_spec.js @@ -59,9 +59,11 @@ describe('EmptyState', () => { expect(getTextFromNode(component, '.state-title')).toEqual( component.states.gettingStarted.title, ); + expect(getTextFromNode(component, '.state-description')).toEqual( component.states.gettingStarted.description, ); + expect(getTextFromNode(component, '.btn-success')).toEqual( component.states.gettingStarted.buttonText, ); @@ -77,6 +79,7 @@ describe('EmptyState', () => { expect(getTextFromNode(component, '.state-description')).toEqual( component.states.loading.description, ); + expect(getTextFromNode(component, '.btn-success')).toEqual(component.states.loading.buttonText); }); @@ -89,6 +92,7 @@ describe('EmptyState', () => { expect(getTextFromNode(component, '.state-title')).toEqual( component.states.unableToConnect.title, ); + expect(component.$el.querySelector('.state-description a')).toBeDefined(); expect(getTextFromNode(component, '.btn-success')).toEqual( component.states.unableToConnect.buttonText, diff --git a/spec/javascripts/new_branch_spec.js b/spec/javascripts/new_branch_spec.js index e914a2eb5eb..1d7b885e64f 100644 --- a/spec/javascripts/new_branch_spec.js +++ b/spec/javascripts/new_branch_spec.js @@ -1,41 +1,41 @@ -/* eslint-disable one-var, no-var, no-return-assign */ - import $ from 'jquery'; import NewBranchForm from '~/new_branch_form'; describe('Branch', function() { describe('create a new branch', function() { - var expectToHaveError, fillNameWith; preloadFixtures('branches/new_branch.html.raw'); - fillNameWith = function(value) { - return $('.js-branch-name') + + function fillNameWith(value) { + $('.js-branch-name') .val(value) .trigger('blur'); - }; - expectToHaveError = function(error) { + } + + function expectToHaveError(error) { expect($('.js-branch-name-error span').text()).toEqual(error); - }; + } + beforeEach(function() { loadFixtures('branches/new_branch.html.raw'); $('form').on('submit', function(e) { return e.preventDefault(); }); - return (this.form = new NewBranchForm($('.js-create-branch-form'), [])); + this.form = new NewBranchForm($('.js-create-branch-form'), []); }); it("can't start with a dot", function() { fillNameWith('.foo'); - return expectToHaveError("can't start with '.'"); + expectToHaveError("can't start with '.'"); }); it("can't start with a slash", function() { fillNameWith('/foo'); - return expectToHaveError("can't start with '/'"); + expectToHaveError("can't start with '/'"); }); it("can't have two consecutive dots", function() { fillNameWith('foo..bar'); - return expectToHaveError("can't contain '..'"); + expectToHaveError("can't contain '..'"); }); it("can't have spaces anywhere", function() { @@ -44,7 +44,7 @@ describe('Branch', function() { fillNameWith('foo bar'); expectToHaveError("can't contain spaces"); fillNameWith('foo '); - return expectToHaveError("can't contain spaces"); + expectToHaveError("can't contain spaces"); }); it("can't have ~ anywhere", function() { @@ -53,7 +53,7 @@ describe('Branch', function() { fillNameWith('foo~bar'); expectToHaveError("can't contain '~'"); fillNameWith('foo~'); - return expectToHaveError("can't contain '~'"); + expectToHaveError("can't contain '~'"); }); it("can't have tilde anwhere", function() { @@ -62,7 +62,7 @@ describe('Branch', function() { fillNameWith('foo~bar'); expectToHaveError("can't contain '~'"); fillNameWith('foo~'); - return expectToHaveError("can't contain '~'"); + expectToHaveError("can't contain '~'"); }); it("can't have caret anywhere", function() { @@ -71,7 +71,7 @@ describe('Branch', function() { fillNameWith('foo^bar'); expectToHaveError("can't contain '^'"); fillNameWith('foo^'); - return expectToHaveError("can't contain '^'"); + expectToHaveError("can't contain '^'"); }); it("can't have : anywhere", function() { @@ -80,7 +80,7 @@ describe('Branch', function() { fillNameWith('foo:bar'); expectToHaveError("can't contain ':'"); fillNameWith(':foo'); - return expectToHaveError("can't contain ':'"); + expectToHaveError("can't contain ':'"); }); it("can't have question mark anywhere", function() { @@ -89,7 +89,7 @@ describe('Branch', function() { fillNameWith('foo?bar'); expectToHaveError("can't contain '?'"); fillNameWith('foo?'); - return expectToHaveError("can't contain '?'"); + expectToHaveError("can't contain '?'"); }); it("can't have asterisk anywhere", function() { @@ -98,7 +98,7 @@ describe('Branch', function() { fillNameWith('foo*bar'); expectToHaveError("can't contain '*'"); fillNameWith('foo*'); - return expectToHaveError("can't contain '*'"); + expectToHaveError("can't contain '*'"); }); it("can't have open bracket anywhere", function() { @@ -107,7 +107,7 @@ describe('Branch', function() { fillNameWith('foo[bar'); expectToHaveError("can't contain '['"); fillNameWith('foo['); - return expectToHaveError("can't contain '['"); + expectToHaveError("can't contain '['"); }); it("can't have a backslash anywhere", function() { @@ -116,7 +116,7 @@ describe('Branch', function() { fillNameWith('foo\\bar'); expectToHaveError("can't contain '\\'"); fillNameWith('foo\\'); - return expectToHaveError("can't contain '\\'"); + expectToHaveError("can't contain '\\'"); }); it("can't contain a sequence @{ anywhere", function() { @@ -125,44 +125,42 @@ describe('Branch', function() { fillNameWith('foo@{bar'); expectToHaveError("can't contain '@{'"); fillNameWith('foo@{'); - return expectToHaveError("can't contain '@{'"); + expectToHaveError("can't contain '@{'"); }); it("can't have consecutive slashes", function() { fillNameWith('foo//bar'); - return expectToHaveError("can't contain consecutive slashes"); + expectToHaveError("can't contain consecutive slashes"); }); it("can't end with a slash", function() { fillNameWith('foo/'); - return expectToHaveError("can't end in '/'"); + expectToHaveError("can't end in '/'"); }); it("can't end with a dot", function() { fillNameWith('foo.'); - return expectToHaveError("can't end in '.'"); + expectToHaveError("can't end in '.'"); }); it("can't end with .lock", function() { fillNameWith('foo.lock'); - return expectToHaveError("can't end in '.lock'"); + expectToHaveError("can't end in '.lock'"); }); it("can't be the single character @", function() { fillNameWith('@'); - return expectToHaveError("can't be '@'"); + expectToHaveError("can't be '@'"); }); it('concatenates all error messages', function() { fillNameWith('/foo bar?~.'); - return expectToHaveError( - "can't start with '/', can't contain spaces, '?', '~', can't end in '.'", - ); + expectToHaveError("can't start with '/', can't contain spaces, '?', '~', can't end in '.'"); }); it("doesn't duplicate error messages", function() { fillNameWith('?foo?bar?zoo?'); - return expectToHaveError("can't contain '?'"); + expectToHaveError("can't contain '?'"); }); it('removes the error message when is a valid name', function() { diff --git a/spec/javascripts/notebook/cells/output/html_sanitize_tests.js b/spec/javascripts/notebook/cells/output/html_sanitize_tests.js index 844a1841c81..74c48f04367 100644 --- a/spec/javascripts/notebook/cells/output/html_sanitize_tests.js +++ b/spec/javascripts/notebook/cells/output/html_sanitize_tests.js @@ -50,7 +50,7 @@ export default { output: 'foo', }, 'protocol-based JS injection: invalid URL char': { - input: '', // eslint-disable-line no-useless-escape + input: '', output: '', }, 'protocol-based JS injection: Unicode': { diff --git a/spec/javascripts/oauth_remember_me_spec.js b/spec/javascripts/oauth_remember_me_spec.js index d38284c146f..2caa266b85f 100644 --- a/spec/javascripts/oauth_remember_me_spec.js +++ b/spec/javascripts/oauth_remember_me_spec.js @@ -16,6 +16,7 @@ describe('OAuthRememberMe', () => { expect($('#oauth-container .oauth-login.twitter').attr('href')).toBe( 'http://example.com/?remember_me=1', ); + expect($('#oauth-container .oauth-login.github').attr('href')).toBe( 'http://example.com/?remember_me=1', ); diff --git a/spec/javascripts/pipelines/empty_state_spec.js b/spec/javascripts/pipelines/empty_state_spec.js index 8cd3d9c64d5..e21dca45fa1 100644 --- a/spec/javascripts/pipelines/empty_state_spec.js +++ b/spec/javascripts/pipelines/empty_state_spec.js @@ -50,6 +50,7 @@ describe('Pipelines Empty State', () => { expect(component.$el.querySelector('.js-get-started-pipelines').getAttribute('href')).toEqual( 'foo', ); + expect(component.$el.querySelector('.js-get-started-pipelines').textContent).toContain( 'Get started with Pipelines', ); diff --git a/spec/javascripts/pipelines/pipelines_spec.js b/spec/javascripts/pipelines/pipelines_spec.js index 3a3f9368bb4..37908153e0e 100644 --- a/spec/javascripts/pipelines/pipelines_spec.js +++ b/spec/javascripts/pipelines/pipelines_spec.js @@ -171,6 +171,7 @@ describe('Pipelines', () => { expect(vm.$el.querySelector('.js-empty-state h4').textContent.trim()).toEqual( 'Build with confidence', ); + expect(vm.$el.querySelector('.js-get-started-pipelines').getAttribute('href')).toEqual( paths.helpPagePath, ); @@ -207,6 +208,7 @@ describe('Pipelines', () => { expect(vm.$el.querySelector('.js-run-pipeline').getAttribute('href')).toEqual( paths.newPipelinePath, ); + expect(vm.$el.querySelector('.js-ci-lint').getAttribute('href')).toEqual(paths.ciLintPath); expect(vm.$el.querySelector('.js-clear-cache').textContent.trim()).toEqual( 'Clear Runner Caches', @@ -324,6 +326,7 @@ describe('Pipelines', () => { expect(vm.$el.querySelector('.js-empty-state').textContent.trim()).toEqual( 'This project is not currently set up to run pipelines.', ); + expect(vm.$el.querySelector('.js-get-started-pipelines')).toBeNull(); }); diff --git a/spec/javascripts/pipelines/pipelines_table_spec.js b/spec/javascripts/pipelines/pipelines_table_spec.js index 63eb2d5f236..5c3387190ab 100644 --- a/spec/javascripts/pipelines/pipelines_table_spec.js +++ b/spec/javascripts/pipelines/pipelines_table_spec.js @@ -41,12 +41,15 @@ describe('Pipelines Table', () => { expect( component.$el.querySelector('.table-section.js-pipeline-status').textContent.trim(), ).toEqual('Status'); + expect( component.$el.querySelector('.table-section.js-pipeline-info').textContent.trim(), ).toEqual('Pipeline'); + expect( component.$el.querySelector('.table-section.js-pipeline-commit').textContent.trim(), ).toEqual('Commit'); + expect( component.$el.querySelector('.table-section.js-pipeline-stages').textContent.trim(), ).toEqual('Stages'); diff --git a/spec/javascripts/pipelines_spec.js b/spec/javascripts/pipelines_spec.js index c474a320792..6b86f9ea437 100644 --- a/spec/javascripts/pipelines_spec.js +++ b/spec/javascripts/pipelines_spec.js @@ -13,7 +13,7 @@ describe('Pipelines', () => { it('should create a `Pipelines` instance without options', () => { expect(() => { - new Pipelines(); - }).not.toThrow(); //eslint-disable-line + new Pipelines(); // eslint-disable-line no-new + }).not.toThrow(); }); }); diff --git a/spec/javascripts/prometheus_metrics/prometheus_metrics_spec.js b/spec/javascripts/prometheus_metrics/prometheus_metrics_spec.js index bc78797a61a..94e2f959d46 100644 --- a/spec/javascripts/prometheus_metrics/prometheus_metrics_spec.js +++ b/spec/javascripts/prometheus_metrics/prometheus_metrics_spec.js @@ -88,6 +88,7 @@ describe('PrometheusMetrics', () => { expect(prometheusMetrics.$monitoredMetricsCount.text()).toEqual( '3 exporters with 12 metrics were found', ); + expect($metricsListLi.length).toEqual(metrics.length); expect( $metricsListLi diff --git a/spec/javascripts/reports/components/modal_spec.js b/spec/javascripts/reports/components/modal_spec.js index dae3a0bdca6..6b8471381de 100644 --- a/spec/javascripts/reports/components/modal_spec.js +++ b/spec/javascripts/reports/components/modal_spec.js @@ -36,6 +36,7 @@ describe('Grouped Test Reports Modal', () => { expect(vm.$el.querySelector('.js-modal-link').getAttribute('href')).toEqual( modalDataStructure.class.value, ); + expect(trimText(vm.$el.querySelector('.js-modal-link').textContent)).toEqual( modalDataStructure.class.value, ); diff --git a/spec/javascripts/signin_tabs_memoizer_spec.js b/spec/javascripts/signin_tabs_memoizer_spec.js index b29dc08af37..b688a299052 100644 --- a/spec/javascripts/signin_tabs_memoizer_spec.js +++ b/spec/javascripts/signin_tabs_memoizer_spec.js @@ -63,6 +63,7 @@ describe('SigninTabsMemoizer', () => { ['ul.new-session-tabs a[href="#bogus"]'], ['ul.new-session-tabs a'], ]); + expect(fakeTab.click).toHaveBeenCalled(); }); diff --git a/spec/javascripts/toggle_buttons_spec.js b/spec/javascripts/toggle_buttons_spec.js index a4ae066c514..09756ff76ec 100644 --- a/spec/javascripts/toggle_buttons_spec.js +++ b/spec/javascripts/toggle_buttons_spec.js @@ -27,6 +27,7 @@ describe('ToggleButtons', () => { expect( wrapper.querySelector('.js-project-feature-toggle').classList.contains('is-checked'), ).toEqual(true); + expect(wrapper.querySelector('.js-project-feature-toggle-input').value).toEqual('true'); }); @@ -53,6 +54,7 @@ describe('ToggleButtons', () => { expect( wrapper.querySelector('.js-project-feature-toggle').classList.contains('is-checked'), ).toEqual(false); + expect(wrapper.querySelector('.js-project-feature-toggle-input').value).toEqual('false'); }); diff --git a/spec/javascripts/vue_mr_widget/components/deployment_spec.js b/spec/javascripts/vue_mr_widget/components/deployment_spec.js index 5fda39ae775..20b5532a837 100644 --- a/spec/javascripts/vue_mr_widget/components/deployment_spec.js +++ b/spec/javascripts/vue_mr_widget/components/deployment_spec.js @@ -152,6 +152,7 @@ describe('Deployment component', () => { expect(el.querySelector('.js-deploy-meta').getAttribute('href')).toEqual( deploymentMockData.url, ); + expect(el.querySelector('.js-deploy-meta').innerText).toContain(deploymentMockData.name); }); @@ -159,6 +160,7 @@ describe('Deployment component', () => { expect(el.querySelector('.js-deploy-url').getAttribute('href')).toEqual( deploymentMockData.external_url, ); + expect(el.querySelector('.js-deploy-url').innerText).toContain('View app'); }); diff --git a/spec/javascripts/vue_mr_widget/components/mr_widget_author_time_spec.js b/spec/javascripts/vue_mr_widget/components/mr_widget_author_time_spec.js index 818d831e706..787f44e478d 100644 --- a/spec/javascripts/vue_mr_widget/components/mr_widget_author_time_spec.js +++ b/spec/javascripts/vue_mr_widget/components/mr_widget_author_time_spec.js @@ -38,6 +38,7 @@ describe('MrWidgetAuthorTime', () => { expect(vm.$el.querySelector('time').getAttribute('data-original-title')).toEqual( '2017-03-23T23:02:00.807Z', ); + expect(vm.$el.querySelector('time').textContent.trim()).toEqual('12 hours ago'); }); }); diff --git a/spec/javascripts/vue_mr_widget/components/mr_widget_header_spec.js b/spec/javascripts/vue_mr_widget/components/mr_widget_header_spec.js index 15c92dffe9c..02c476f2871 100644 --- a/spec/javascripts/vue_mr_widget/components/mr_widget_header_spec.js +++ b/spec/javascripts/vue_mr_widget/components/mr_widget_header_spec.js @@ -304,9 +304,11 @@ describe('MRWidgetHeader', () => { expect(vm.$el.querySelector('.diverged-commits-count').textContent).toEqual( 'The source branch is 12 commits behind the target branch', ); + expect(vm.$el.querySelector('.diverged-commits-count a').textContent).toEqual( '12 commits behind', ); + expect(vm.$el.querySelector('.diverged-commits-count a')).toHaveAttr( 'href', vm.mr.targetBranchPath, diff --git a/spec/javascripts/vue_mr_widget/components/mr_widget_merge_help_spec.js b/spec/javascripts/vue_mr_widget/components/mr_widget_merge_help_spec.js index dd7137abe0c..2c554f3f3ab 100644 --- a/spec/javascripts/vue_mr_widget/components/mr_widget_merge_help_spec.js +++ b/spec/javascripts/vue_mr_widget/components/mr_widget_merge_help_spec.js @@ -36,6 +36,7 @@ describe('MRWidgetMergeHelp', () => { expect(vm.$el.querySelector('.js-open-modal-help').getAttribute('data-target')).toEqual( '#modal_merge_info', ); + expect(vm.$el.querySelector('.js-open-modal-help').getAttribute('data-toggle')).toEqual( 'modal', ); @@ -60,6 +61,7 @@ describe('MRWidgetMergeHelp', () => { expect(vm.$el.querySelector('.js-open-modal-help').getAttribute('data-target')).toEqual( '#modal_merge_info', ); + expect(vm.$el.querySelector('.js-open-modal-help').getAttribute('data-toggle')).toEqual( 'modal', ); diff --git a/spec/javascripts/vue_mr_widget/components/states/mr_widget_merge_when_pipeline_succeeds_spec.js b/spec/javascripts/vue_mr_widget/components/states/mr_widget_merge_when_pipeline_succeeds_spec.js index 23c51aa1fb2..d46ad0acc9b 100644 --- a/spec/javascripts/vue_mr_widget/components/states/mr_widget_merge_when_pipeline_succeeds_spec.js +++ b/spec/javascripts/vue_mr_widget/components/states/mr_widget_merge_when_pipeline_succeeds_spec.js @@ -125,10 +125,12 @@ describe('MRWidgetMergeWhenPipelineSucceeds', () => { expect(vm.$el.querySelector('.js-cancel-auto-merge').innerText).toContain( 'Cancel automatic merge', ); + expect(vm.$el.querySelector('.js-cancel-auto-merge').getAttribute('disabled')).toBeFalsy(); expect(vm.$el.querySelector('.js-remove-source-branch').innerText).toContain( 'Remove source branch', ); + expect(vm.$el.querySelector('.js-remove-source-branch').getAttribute('disabled')).toBeFalsy(); }); diff --git a/spec/javascripts/vue_mr_widget/components/states/mr_widget_nothing_to_merge_spec.js b/spec/javascripts/vue_mr_widget/components/states/mr_widget_nothing_to_merge_spec.js index 5b80f9b8380..babb8cea0ab 100644 --- a/spec/javascripts/vue_mr_widget/components/states/mr_widget_nothing_to_merge_spec.js +++ b/spec/javascripts/vue_mr_widget/components/states/mr_widget_nothing_to_merge_spec.js @@ -18,6 +18,7 @@ describe('NothingToMerge', () => { expect(vm.$el.innerText).toContain( "Currently there are no changes in this merge request's source branch", ); + expect(vm.$el.innerText).toContain('Please push new commits or use a different branch.'); }); diff --git a/spec/javascripts/vue_mr_widget/components/states/mr_widget_unresolved_discussions_spec.js b/spec/javascripts/vue_mr_widget/components/states/mr_widget_unresolved_discussions_spec.js index d84fee247be..bd64d7b2926 100644 --- a/spec/javascripts/vue_mr_widget/components/states/mr_widget_unresolved_discussions_spec.js +++ b/spec/javascripts/vue_mr_widget/components/states/mr_widget_unresolved_discussions_spec.js @@ -23,6 +23,7 @@ describe('UnresolvedDiscussions', () => { expect(vm.$el.innerText).toContain( 'There are unresolved discussions. Please resolve these discussions', ); + expect(vm.$el.innerText).toContain('Create an issue to resolve them later'); expect(vm.$el.querySelector('.js-create-issue').getAttribute('href')).toEqual(gl.TEST_HOST); }); @@ -37,6 +38,7 @@ describe('UnresolvedDiscussions', () => { expect(vm.$el.innerText).toContain( 'There are unresolved discussions. Please resolve these discussions', ); + expect(vm.$el.querySelector('.js-create-issue')).toEqual(null); }); }); diff --git a/spec/javascripts/vue_shared/components/panel_resizer_spec.js b/spec/javascripts/vue_shared/components/panel_resizer_spec.js index 37237154266..49a580be06b 100644 --- a/spec/javascripts/vue_shared/components/panel_resizer_spec.js +++ b/spec/javascripts/vue_shared/components/panel_resizer_spec.js @@ -74,6 +74,7 @@ describe('Panel Resizer component', () => { ['update:size', 100], ['resize-end', 100], ]); + expect(vm.size).toBe(100); }); }); diff --git a/spec/javascripts/vue_shared/components/sidebar/labels_select/dropdown_create_label_spec.js b/spec/javascripts/vue_shared/components/sidebar/labels_select/dropdown_create_label_spec.js index cef06e77141..b8f32f96332 100644 --- a/spec/javascripts/vue_shared/components/sidebar/labels_select/dropdown_create_label_spec.js +++ b/spec/javascripts/vue_shared/components/sidebar/labels_select/dropdown_create_label_spec.js @@ -92,6 +92,7 @@ describe('DropdownCreateLabelComponent', () => { expect( vm.$el.querySelector('.dropdown-label-color-preview.js-dropdown-label-color-preview'), ).not.toBe(null); + expect(vm.$el.querySelector('input#new_label_color.default-dropdown-input')).not.toBe(null); });