From d668294f28c7a54a34b6cc896953ece1c9def15d Mon Sep 17 00:00:00 2001 From: Phil Hughes Date: Tue, 3 Oct 2017 15:01:02 +0100 Subject: [PATCH] spec fixes --- app/assets/javascripts/flash.js | 15 ++++++++++----- app/assets/javascripts/notes.js | 4 ++-- .../integration_settings_form_spec.js | 2 +- 3 files changed, 13 insertions(+), 8 deletions(-) diff --git a/app/assets/javascripts/flash.js b/app/assets/javascripts/flash.js index 69e4f884f34..1a52c5a07bf 100644 --- a/app/assets/javascripts/flash.js +++ b/app/assets/javascripts/flash.js @@ -1,8 +1,10 @@ import _ from 'underscore'; const hideFlash = (flashEl) => { - flashEl.style.transition = 'opacity .3s'; // eslint-disable-line no-param-reassign - flashEl.style.opacity = '0'; // eslint-disable-line no-param-reassign + Object.assign(flashEl.style, { + transition: 'opacity .3s', + opacity: '0', + }); flashEl.addEventListener('transitionend', () => { flashEl.remove(); @@ -33,8 +35,11 @@ const createFlashEl = (message, type) => ` `; -const Flash = function Flash(message, type = 'alert', parent = document, actionConfig = null) { +const createFlash = function createFlash(message, type = 'alert', parent = document, actionConfig = null) { const flashContainer = parent.querySelector('.flash-container'); + + if (!flashContainer) return null; + flashContainer.innerHTML = createFlashEl(message, type); const flashEl = flashContainer.querySelector(`.flash-${type}`); @@ -61,8 +66,8 @@ const Flash = function Flash(message, type = 'alert', parent = document, actionC }; export { - Flash as default, + createFlash as default, createFlashEl, hideFlash, }; -window.Flash = Flash; +window.Flash = createFlash; diff --git a/app/assets/javascripts/notes.js b/app/assets/javascripts/notes.js index e1895e45918..dafbfb59c99 100644 --- a/app/assets/javascripts/notes.js +++ b/app/assets/javascripts/notes.js @@ -354,7 +354,7 @@ export default class Notes { Object.keys(noteEntity.commands_changes).length > 0) { $notesList.find('.system-note.being-posted').remove(); } - this.addFlash(noteEntity.errors.commands_only, 'notice', this.parentTimeline); // TODO: CHECK THIS! + this.addFlash(noteEntity.errors.commands_only, 'notice', this.parentTimeline.get(0)); this.refresh(); } return; @@ -593,7 +593,7 @@ export default class Notes { } else if ($form.hasClass('js-discussion-note-form')) { formParentTimeline = $form.closest('.discussion-notes').find('.notes'); } - return this.addFlash('Your comment could not be submitted! Please check your network connection and try again.', 'alert', formParentTimeline); + return this.addFlash('Your comment could not be submitted! Please check your network connection and try again.', 'alert', formParentTimeline.get(0)); } updateNoteError($parentTimeline) { diff --git a/spec/javascripts/integrations/integration_settings_form_spec.js b/spec/javascripts/integrations/integration_settings_form_spec.js index 3daeb91b1e2..b83a4abca9a 100644 --- a/spec/javascripts/integrations/integration_settings_form_spec.js +++ b/spec/javascripts/integrations/integration_settings_form_spec.js @@ -181,7 +181,7 @@ describe('IntegrationSettingsForm', () => { deferred.reject(); - expect($('.flash-container .flash-text').text()).toEqual(errorMessage); + expect($('.flash-container .flash-text').text().trim()).toEqual(errorMessage); }); it('should always call `toggleSubmitBtnState` with `false` once request is completed', () => {