diff --git a/client/core/src/components/snackbar/snackbar.html b/client/core/src/components/snackbar/snackbar.html index 60eff1e46d..66f777d7dc 100644 --- a/client/core/src/components/snackbar/snackbar.html +++ b/client/core/src/components/snackbar/snackbar.html @@ -1,4 +1,8 @@ -
+
+ + + \ No newline at end of file diff --git a/client/core/src/components/snackbar/snackbar.js b/client/core/src/components/snackbar/snackbar.js index aeec1f12fa..cf1418903b 100644 --- a/client/core/src/components/snackbar/snackbar.js +++ b/client/core/src/components/snackbar/snackbar.js @@ -9,11 +9,50 @@ export default class Controller extends Component { constructor($element, $translate) { super($element); this.$translate = $translate; - this.shown = false; this.snackbar = $element[0].firstChild; this.$snackbar = angular.element(this.snackbar); - this.button = $element[0].querySelector('button'); - this.textNode = this.snackbar.querySelector('.text'); + } + + /** + * It creates a new snackbar notification + * @param {Object} data Snackbar data + * @return {Object} Created snackbar shape + */ + createShape(data) { + let shape = document.createElement('div'); + shape.className = 'shape'; + + let button = document.createElement('button'); + + let buttonText = data.actionText || this.$translate.instant('Hide'); + buttonText = document.createTextNode(buttonText); + button.appendChild(buttonText); + + button.addEventListener('click', () => { + this.onButtonClick(shape); + }); + + shape.appendChild(button); + + let shapeText = document.createElement('div'); + shapeText.setAttribute('class', 'text'); + shape.appendChild(shapeText); + + let text = document.createTextNode(data.message); + shapeText.appendChild(text); + + if (data.shapeType) + shape.classList.add(data.shapeType); + + let parent = this.snackbar.querySelectorAll('.shape')[0]; + + if (parent) { + this.snackbar.insertBefore(shape, parent); + } else { + this.snackbar.appendChild(shape); + } + + return shape; } /** @@ -22,24 +61,15 @@ export default class Controller extends Component { * @param {Object} data The message data */ show(data) { - if (this.shown) { - this.hide(); - this.onTransitionEnd(); - } - - this.clearTimeouts(); - this.shown = true; - this.textNode.textContent = data.message; this.actionHandler = data.actionHandler; - this.button.textContent = - data.actionText || this.$translate.instant('Hide'); + let shape = this.createShape(data); - this.timeoutId = setTimeout(() => - this.hide(), data.timeout || 6000); + setTimeout(() => + this.hide(shape), data.timeout || 6000); - this.transitionTimeout = setTimeout(() => - this.$snackbar.addClass('shown'), 30); + setTimeout(() => + shape.classList.add('shown'), 30); } /** @@ -48,52 +78,41 @@ export default class Controller extends Component { * @param {Object} data The message data */ showError(data) { + data.shapeType = 'error'; + + this.show(data); + } + + /** + * Shows a success. + * + * @param {Object} data The message data + */ + showSuccess(data) { + data.shapeType = 'success'; + this.show(data); - this.$snackbar.addClass('error'); } /** * Hides the snackbar. + * @param {Object} shape Snackbar element */ - hide() { - if (!this.shown) return; - clearTimeout(this.timeoutId); - this.shown = false; - this.hideTimeout = setTimeout(() => this.onTransitionEnd(), 250); - - this.transitionTimeout = - setTimeout(() => this.$snackbar.removeClass('shown'), 30); - } - - onTransitionEnd() { - this.$snackbar.removeClass('error'); - this.textNode.textContent = ''; - this.button.textContent = ''; - this.actionHandler = null; + hide(shape) { + setTimeout(() => shape.classList.remove('shown'), 30); + setTimeout(() => shape.remove(), 250); } onSnackbarClick(event) { this.event = event; } - onButtonClick() { - if (this.actionHandler) + onButtonClick(shape) { + if (this.actionHandler) { this.actionHandler(); - else - this.hide(); - } - - clearTimeouts() { - clearTimeout(this.timeoutId); - clearTimeout(this.hideTimeout); - clearTimeout(this.transitionTimeout); - this.timeoutId = null; - this.hideTimeout = null; - this.transitionTimeout = null; - } - - $onDestroy() { - this.clearTimeouts(); + } else { + this.hide(shape); + } } } Controller.$inject = ['$element', '$translate']; diff --git a/client/core/src/components/snackbar/style.scss b/client/core/src/components/snackbar/style.scss index f3617fe5e6..b8f863b790 100644 --- a/client/core/src/components/snackbar/style.scss +++ b/client/core/src/components/snackbar/style.scss @@ -1,38 +1,50 @@ @import "colors"; -vn-snackbar > div { - box-sizing: border-box; - background-color: #333; - color: white; + +vn-snackbar #shapes { position: fixed; bottom: 0; - left: 50%; + right: 15px; width: 20em; - margin-left: -10em; - padding: 1em; - border-top-left-radius: .2em; - border-top-right-radius: .2em; - transform: translateY(10em); - transition: transform 300ms ease-in-out; + max-height: 20.625em; z-index: 100; +} + +vn-snackbar .shape { + box-sizing: border-box; + background-color: rgba(1, 1, 1, 0.8); + color: white; + padding: 1em; + border-radius: .2em; box-shadow: 0 0 .4em rgba(1,1,1,.4); + margin-bottom: 15px; + transform: translateX(20em); + transition: transform 300ms ease-in-out; + + &.text { + text-align: center + } &.shown { - transform: translateY(0); + transform: translateX(0); } - &.notice { - background-color: #1e88e5; + + &.success { + background-color: rgba(163, 209, 49, 0.8); + color: #445911; & > button { color: rgba(1, 1, 1, 0.6); } } + &.error { - background-color: #c62828; + background-color: rgba(198, 40, 40, 0.8); & > button { color: rgba(1, 1, 1, 0.6); } } + & > button { cursor: pointer; float: right; diff --git a/client/core/src/components/watcher/watcher.js b/client/core/src/components/watcher/watcher.js index 790f76870f..f890a1977c 100644 --- a/client/core/src/components/watcher/watcher.js +++ b/client/core/src/components/watcher/watcher.js @@ -177,7 +177,7 @@ export default class Watcher extends Component { * Notifies the user that the data has been saved. */ notifySaved() { - this.vnApp.showMessage(this._.instant('Data saved!')); + this.vnApp.showSuccess(this._.instant('Data saved!')); } writeData(json, resolve) { diff --git a/client/core/src/lib/app.js b/client/core/src/lib/app.js index 07822682ae..ac744be9d8 100644 --- a/client/core/src/lib/app.js +++ b/client/core/src/lib/app.js @@ -11,19 +11,28 @@ export default class App { this.loaderStatus = 0; this.loading = false; } + showMessage(message) { if (this.snackbar) this.snackbar.show({message: message}); } + + showSuccess(message) { + if (this.snackbar) + this.snackbar.showSuccess({message: message}); + } + showError(message) { if (this.snackbar) this.snackbar.showError({message: message}); } + pushLoader() { this.loaderStatus++; if (this.loaderStatus === 1) this.loading = true; } + popLoader() { this.loaderStatus--; if (this.loaderStatus === 0) diff --git a/client/core/src/styles/fontello-codes.css b/client/core/src/styles/fontello-codes.css index d90a5615a7..34da979b0a 100644 --- a/client/core/src/styles/fontello-codes.css +++ b/client/core/src/styles/fontello-codes.css @@ -3,6 +3,7 @@ .icon-volume:before { content: '\e801'; } /* '' */ .icon-barcode:before { content: '\e802'; } /* '' */ .icon-bucket:before { content: '\e803'; } /* '' */ +.icon-reserva:before { content: '\e804'; } /* '' */ .icon-frozen:before { content: '\e808'; } /* '' */ .icon-disabled:before { content: '\e80b'; } /* '' */ .icon-invoices:before { content: '\e80c'; } /* '' */ diff --git a/client/core/src/styles/fontello.woff2 b/client/core/src/styles/fontello.woff2 index 50b83f934d..d1d21d7d87 100644 Binary files a/client/core/src/styles/fontello.woff2 and b/client/core/src/styles/fontello.woff2 differ diff --git a/client/ticket/src/data/step-one/index.js b/client/ticket/src/data/step-one/index.js index 7e96eb40a8..5a9d8ab5b8 100644 --- a/client/ticket/src/data/step-one/index.js +++ b/client/ticket/src/data/step-one/index.js @@ -44,7 +44,7 @@ class Controller { return true; }, res => { if (res.data.error.message === 'NO_AGENCY_AVAILABLE') - this.vnApp.showError( + this.vnApp.showSuccess( this.$translate.instant(`There's no available agency for this landing date`) ); }); diff --git a/e2e/helpers/extensions.js b/e2e/helpers/extensions.js index 7f146d30ef..57c33f84d1 100644 --- a/e2e/helpers/extensions.js +++ b/e2e/helpers/extensions.js @@ -188,11 +188,9 @@ Nightmare.action('waitForSnackbarReset', function(done) { }); Nightmare.action('waitForSnackbar', function(done) { - this.wait(500) - .waitForInnerText('vn-snackbar .text') - .then(value => { - this.waitForSnackbarReset() - .then(() => done(null, value)); + this.wait(500).waitForShapes('vn-snackbar .shape .text') + .then(shapes => { + done(null, shapes); }); }); @@ -202,3 +200,17 @@ Nightmare.action('waitForURL', function(hashURL, done) { }, hashURL) .then(done); }); + +Nightmare.action('waitForShapes', function(selector, done) { + this.wait(selector) + .evaluate_now(selector => { + let shapes = document.querySelectorAll(selector); + let shapesList = []; + + for (let shape of shapes) { + shapesList.push(shape.innerText); + } + + return shapesList; + }, done, selector); +}); diff --git a/e2e/paths/client-module/01_create_client.spec.js b/e2e/paths/client-module/01_create_client.spec.js index 971d5842c3..531a41b005 100644 --- a/e2e/paths/client-module/01_create_client.spec.js +++ b/e2e/paths/client-module/01_create_client.spec.js @@ -67,7 +67,7 @@ describe('Client', () => { .click(selectors.createClientView.createButton) .waitForSnackbar() .then(result => { - expect(result).toContain('Some fields are invalid'); + expect(result).toEqual(jasmine.arrayContaining(['Some fields are invalid'])); }); }); @@ -81,7 +81,7 @@ describe('Client', () => { .click(selectors.createClientView.createButton) .waitForSnackbar() .then(result => { - expect(result).toContain('Some fields are invalid'); + expect(result).toEqual(jasmine.arrayContaining(['Some fields are invalid'])); }); }); @@ -94,7 +94,7 @@ describe('Client', () => { .click(selectors.createClientView.createButton) .waitForSnackbar() .then(result => { - expect(result).toContain('Some fields are invalid'); + expect(result).toEqual(jasmine.arrayContaining(['Some fields are invalid'])); }); }); @@ -105,7 +105,7 @@ describe('Client', () => { .click(selectors.createClientView.createButton) .waitForSnackbar() .then(result => { - expect(result).toContain('Data saved!'); + expect(result).toEqual(jasmine.arrayContaining(['Data saved!'])); }); }); diff --git a/e2e/paths/client-module/02_edit_basic_data.spec.js b/e2e/paths/client-module/02_edit_basic_data.spec.js index e8724c84af..c1645cc219 100644 --- a/e2e/paths/client-module/02_edit_basic_data.spec.js +++ b/e2e/paths/client-module/02_edit_basic_data.spec.js @@ -66,7 +66,7 @@ describe('Client', () => { .click(selectors.clientBasicData.saveButton) .waitForSnackbar() .then(result => { - expect(result).toEqual('Data saved!'); + expect(result).toEqual(jasmine.arrayContaining(['Data saved!'])); }); }); diff --git a/e2e/paths/client-module/03_edit_fiscal_data.spec.js b/e2e/paths/client-module/03_edit_fiscal_data.spec.js index 70a7efbab9..09b020251a 100644 --- a/e2e/paths/client-module/03_edit_fiscal_data.spec.js +++ b/e2e/paths/client-module/03_edit_fiscal_data.spec.js @@ -109,7 +109,7 @@ describe('Client', () => { .click(selectors.clientFiscalData.saveButton) .waitForSnackbar() .then(result => { - expect(result).toEqual('Data saved!'); + expect(result).toEqual(jasmine.arrayContaining(['Data saved!'])); }); }); @@ -118,7 +118,7 @@ describe('Client', () => { .waitToClick(selectors.clientFiscalData.acceptPropagationButton) .waitForSnackbar() .then(result => { - expect(result).toEqual('Equivalent tax spreaded'); + expect(result).toEqual(jasmine.arrayContaining(['Equivalent tax spreaded'])); }); }); diff --git a/e2e/paths/client-module/04_edit_pay_method.spec.js b/e2e/paths/client-module/04_edit_pay_method.spec.js index cc084d802e..e0e0cb0579 100644 --- a/e2e/paths/client-module/04_edit_pay_method.spec.js +++ b/e2e/paths/client-module/04_edit_pay_method.spec.js @@ -58,7 +58,7 @@ describe('Client', () => { .waitToClick(selectors.clientPayMethod.saveButton) .waitForSnackbar() .then(result => { - expect(result).toContain('requires an IBAN'); + expect(result).toEqual(jasmine.arrayContaining(['requires an IBAN'])); }); }); @@ -69,7 +69,7 @@ describe('Client', () => { .waitToClick(selectors.clientPayMethod.saveButton) .waitForSnackbar() .then(result => { - expect((result === 'Notification sent!' || result === 'Data saved!')).toBeTruthy(); + expect(result).toEqual(jasmine.arrayContaining(['Data saved!', 'Notification sent!'])); }); }); diff --git a/e2e/paths/client-module/05_add_address.spec.js b/e2e/paths/client-module/05_add_address.spec.js index 8ab306fb05..63f58a1386 100644 --- a/e2e/paths/client-module/05_add_address.spec.js +++ b/e2e/paths/client-module/05_add_address.spec.js @@ -90,7 +90,7 @@ describe('Client', () => { .waitToClick(selectors.clientFiscalData.saveButton) .waitForSnackbar() .then(result => { - expect(result).toContain('Some fields are invalid'); + expect(result).toEqual(jasmine.arrayContaining(['Some fields are invalid'])); }); }); @@ -102,7 +102,7 @@ describe('Client', () => { .click(selectors.clientAddresses.saveButton) .waitForSnackbar() .then(result => { - expect(result).toContain('Data saved!'); + expect(result).toEqual(jasmine.arrayContaining(['Some fields are invalid'])); }); }); @@ -143,7 +143,7 @@ describe('Client', () => { .waitToClick(selectors.clientAddresses.saveButton) .waitForSnackbar() .then(result => { - expect(result).toContain('The default consignee can not be unchecked'); + expect(result).toEqual(jasmine.arrayContaining(['The default consignee can not be unchecked'])); }); }); }); diff --git a/e2e/paths/client-module/06_add_address_notes.spec.js b/e2e/paths/client-module/06_add_address_notes.spec.js index 15e75b088d..e8f0df0d44 100644 --- a/e2e/paths/client-module/06_add_address_notes.spec.js +++ b/e2e/paths/client-module/06_add_address_notes.spec.js @@ -65,7 +65,7 @@ describe('Client', () => { .waitToClick(selectors.clientAddresses.saveButton) .waitForSnackbar() .then(result => { - expect(result).toContain('type cannot be blank'); + expect(result).toEqual(jasmine.arrayContaining(['type cannot be blank'])); }); }); @@ -77,7 +77,7 @@ describe('Client', () => { .waitToClick(selectors.clientAddresses.saveButton) .waitForSnackbar() .then(result => { - expect(result).toContain('Some fields are invalid'); + expect(result).toEqual(jasmine.arrayContaining(['Some fields are invalid'])); }); }); @@ -91,7 +91,7 @@ describe('Client', () => { .waitToClick(selectors.clientAddresses.saveButton) .waitForSnackbar() .then(result => { - expect(result).toContain('Data saved!'); + expect(result).toEqual(jasmine.arrayContaining(['Data saved!'])); }); }); }); diff --git a/e2e/paths/client-module/07_edit_web_access.spec.js b/e2e/paths/client-module/07_edit_web_access.spec.js index 3b20674bb4..d0b3f7e947 100644 --- a/e2e/paths/client-module/07_edit_web_access.spec.js +++ b/e2e/paths/client-module/07_edit_web_access.spec.js @@ -54,7 +54,7 @@ describe('Client', () => { .waitToClick(selectors.clientWebAccess.saveButton) .waitForSnackbar() .then(result => { - expect(result).toContain(`Data saved!`); + expect(result).toEqual(jasmine.arrayContaining(['Data saved!'])); }); }); diff --git a/e2e/paths/client-module/08_add_notes.spec.js b/e2e/paths/client-module/08_add_notes.spec.js index 5b3852b1a9..763bf8ea1d 100644 --- a/e2e/paths/client-module/08_add_notes.spec.js +++ b/e2e/paths/client-module/08_add_notes.spec.js @@ -62,7 +62,7 @@ describe('Client', () => { .click(selectors.clientNotes.saveButton) .waitForSnackbar() .then(result => { - expect(result).toEqual('Data saved!'); + expect(result).toEqual(jasmine.arrayContaining(['Data saved!'])); }); }); diff --git a/e2e/paths/client-module/09_add_credit.spec.js b/e2e/paths/client-module/09_add_credit.spec.js index fc5fe9560e..2f5366ead9 100644 --- a/e2e/paths/client-module/09_add_credit.spec.js +++ b/e2e/paths/client-module/09_add_credit.spec.js @@ -63,7 +63,7 @@ describe('Client', () => { .click(selectors.clientCredit.saveButton) .waitForSnackbar() .then(result => { - expect(result).toEqual('Data saved!'); + expect(result).toEqual(jasmine.arrayContaining(['Data saved!'])); }); }); diff --git a/e2e/paths/client-module/10_add_greuge.spec.js b/e2e/paths/client-module/10_add_greuge.spec.js index da6aea9e26..6af1c40732 100644 --- a/e2e/paths/client-module/10_add_greuge.spec.js +++ b/e2e/paths/client-module/10_add_greuge.spec.js @@ -63,7 +63,7 @@ describe('Client', () => { .click(selectors.clientGreuge.saveButton) .waitForSnackbar() .then(result => { - expect(result).toContain('Some fields are invalid'); + expect(result).toEqual(jasmine.arrayContaining(['Some fields are invalid'])); }); }); @@ -74,7 +74,7 @@ describe('Client', () => { .click(selectors.clientGreuge.saveButton) .waitForSnackbar() .then(result => { - expect(result).toContain('Data saved!'); + expect(result).toEqual(jasmine.arrayContaining(['Data saved!'])); }); }); diff --git a/e2e/paths/client-module/12_lock_of_verified_data.spec.js b/e2e/paths/client-module/12_lock_of_verified_data.spec.js index 4515e70234..f4bb173952 100644 --- a/e2e/paths/client-module/12_lock_of_verified_data.spec.js +++ b/e2e/paths/client-module/12_lock_of_verified_data.spec.js @@ -77,7 +77,7 @@ describe('Client', () => { .click(selectors.clientFiscalData.saveButton) .waitForSnackbar() .then(result => { - expect(result).toEqual('Data saved!'); + expect(result).toEqual(jasmine.arrayContaining(['Data saved!'])); }); }); @@ -164,7 +164,7 @@ describe('Client', () => { .waitToClick(selectors.clientFiscalData.saveButton) .waitForSnackbar() .then(result => { - expect(result).toEqual('Data saved!'); + expect(result).toEqual(jasmine.arrayContaining(['Data saved!'])); }); }); @@ -190,7 +190,7 @@ describe('Client', () => { .click(selectors.clientFiscalData.saveButton) .waitForSnackbar() .then(result => { - expect(result).toEqual('Data saved!'); + expect(result).toEqual(jasmine.arrayContaining(['Data saved!'])); }); }); @@ -353,7 +353,7 @@ describe('Client', () => { .waitToClick(selectors.clientFiscalData.saveButton) .waitForSnackbar() .then(result => { - expect(result).toEqual('Data saved!'); + expect(result).toEqual(jasmine.arrayContaining(['Data saved!'])); }); }); @@ -379,7 +379,7 @@ describe('Client', () => { .click(selectors.clientFiscalData.saveButton) .waitForSnackbar() .then(result => { - expect(result).toEqual('Data saved!'); + expect(result).toEqual(jasmine.arrayContaining(['Data saved!'])); }); }); diff --git a/e2e/paths/item-module/02_edit_item_basic_data.spec.js b/e2e/paths/item-module/02_edit_item_basic_data.spec.js index 1edf433bec..506438feb5 100644 --- a/e2e/paths/item-module/02_edit_item_basic_data.spec.js +++ b/e2e/paths/item-module/02_edit_item_basic_data.spec.js @@ -61,7 +61,7 @@ describe('Item', () => { .click(selectors.itemBasicData.submitBasicDataButton) .waitForSnackbar() .then(result => { - expect(result).toContain('Data saved!'); + expect(result).toEqual(jasmine.arrayContaining(['Data saved!'])); }); }); diff --git a/e2e/paths/item-module/03_edit_item_tax.spec.js b/e2e/paths/item-module/03_edit_item_tax.spec.js index 9795074a7e..ce2160fb77 100644 --- a/e2e/paths/item-module/03_edit_item_tax.spec.js +++ b/e2e/paths/item-module/03_edit_item_tax.spec.js @@ -55,7 +55,7 @@ describe('Item', () => { .click(selectors.itemTax.submitTaxButton) .waitForSnackbar() .then(result => { - expect(result).toContain('Data saved!'); + expect(result).toEqual(jasmine.arrayContaining(['Data saved!'])); }); }); diff --git a/e2e/paths/item-module/04_create_item_tags.spec.js b/e2e/paths/item-module/04_create_item_tags.spec.js index ec9534d120..3310049e30 100644 --- a/e2e/paths/item-module/04_create_item_tags.spec.js +++ b/e2e/paths/item-module/04_create_item_tags.spec.js @@ -56,7 +56,7 @@ describe('Item', () => { .click(selectors.itemTags.submitItemTagsButton) .waitForSnackbar() .then(result => { - expect(result).toContain('Data saved!'); + expect(result).toEqual(jasmine.arrayContaining(['Data saved!'])); }); }); diff --git a/e2e/paths/item-module/05_create_item_niche.spec.js b/e2e/paths/item-module/05_create_item_niche.spec.js index 137ce2e4e5..cedd35d2df 100644 --- a/e2e/paths/item-module/05_create_item_niche.spec.js +++ b/e2e/paths/item-module/05_create_item_niche.spec.js @@ -54,7 +54,7 @@ describe('Item', () => { .click(selectors.itemNiches.submitNichesButton) .waitForSnackbar() .then(result => { - expect(result).toContain('Data saved!'); + expect(result).toEqual(jasmine.arrayContaining(['Data saved!'])); }); }); diff --git a/e2e/paths/item-module/06_create_item_botanical.spec.js b/e2e/paths/item-module/06_create_item_botanical.spec.js index 1d22748031..0df2171529 100644 --- a/e2e/paths/item-module/06_create_item_botanical.spec.js +++ b/e2e/paths/item-module/06_create_item_botanical.spec.js @@ -54,7 +54,7 @@ describe('Item', () => { .waitToClick(selectors.itemBotanical.submitBotanicalButton) .waitForSnackbar() .then(result => { - expect(result).toContain('Data saved!'); + expect(result).toEqual(jasmine.arrayContaining(['Data saved!'])); }); }); @@ -98,7 +98,7 @@ describe('Item', () => { .waitToClick(selectors.itemBotanical.submitBotanicalButton) .waitForSnackbar() .then(result => { - expect(result).toContain('Data saved!'); + expect(result).toEqual(jasmine.arrayContaining(['Data saved!'])); }); }); diff --git a/e2e/paths/item-module/07_create_item_barcode.spec.js b/e2e/paths/item-module/07_create_item_barcode.spec.js index c326d2ac1b..563eed7f64 100644 --- a/e2e/paths/item-module/07_create_item_barcode.spec.js +++ b/e2e/paths/item-module/07_create_item_barcode.spec.js @@ -53,7 +53,7 @@ describe('Item', () => { .waitToClick(selectors.itemBarcodes.submitBarcodesButton) .waitForSnackbar() .then(result => { - expect(result).toContain('Data saved!'); + expect(result).toEqual(jasmine.arrayContaining(['Data saved!'])); }); }); diff --git a/e2e/paths/item-module/08_item_create_and_clone.spec.js b/e2e/paths/item-module/08_item_create_and_clone.spec.js index 2a4e7b8cf2..91d624f75a 100644 --- a/e2e/paths/item-module/08_item_create_and_clone.spec.js +++ b/e2e/paths/item-module/08_item_create_and_clone.spec.js @@ -73,7 +73,7 @@ describe('Item', () => { .click(selectors.itemCreateView.createButton) .waitForSnackbar() .then(result => { - expect(result).toContain('Data saved!'); + expect(result).toEqual(jasmine.arrayContaining(['Data saved!'])); }); }); diff --git a/e2e/paths/ticket-module/01_create_ticket_observations.spec.js b/e2e/paths/ticket-module/01_create_ticket_observations.spec.js index 0e7b279750..0604abc4f1 100644 --- a/e2e/paths/ticket-module/01_create_ticket_observations.spec.js +++ b/e2e/paths/ticket-module/01_create_ticket_observations.spec.js @@ -55,7 +55,7 @@ describe('Ticket', () => { .click(selectors.ticketNotes.submitNotesButton) .waitForSnackbar() .then(result => { - expect(result).toContain('Data saved!'); + expect(result).toEqual(jasmine.arrayContaining(['Data saved!'])); }); }); diff --git a/e2e/paths/ticket-module/04_create_ticket_packages.spec.js b/e2e/paths/ticket-module/04_create_ticket_packages.spec.js index c87b99705a..11fefba383 100644 --- a/e2e/paths/ticket-module/04_create_ticket_packages.spec.js +++ b/e2e/paths/ticket-module/04_create_ticket_packages.spec.js @@ -55,7 +55,7 @@ // .click(selectors.ticketPackages.savePackagesButton) // .waitForSnackbar() // .then(result => { -// expect(result).toContain('Some fields are invalid'); +// expect(result).toEqual(jasmine.arrayContaining(['Some fields are invalid'])); // }); // }); @@ -65,7 +65,7 @@ // .click(selectors.ticketPackages.savePackagesButton) // .waitForSnackbar() // .then(result => { -// expect(result).toContain('Some fields are invalid'); +// expect(result).toEqual(jasmine.arrayContaining(['Some fields are invalid'])); // }); // }); @@ -76,7 +76,7 @@ // .click(selectors.ticketPackages.savePackagesButton) // .waitForSnackbar() // .then(result => { -// expect(result).toContain('Some fields are invalid'); +// expect(result).toEqual(jasmine.arrayContaining(['Some fields are invalid'])); // }); // }); @@ -88,7 +88,7 @@ // .click(selectors.ticketPackages.savePackagesButton) // .waitForSnackbar() // .then(result => { -// expect(result).toContain('Package cannot be blank'); +// expect(result).toEqual(jasmine.arrayContaining(['Package cannot be blank'])); // }); // }); @@ -100,7 +100,7 @@ // .click(selectors.ticketPackages.savePackagesButton) // .waitForSnackbar() // .then(result => { -// expect(result).toContain('Data saved!'); +// expect(result).toEqual(jasmine.arrayContaining(['Data saved!'])); // }); // }); diff --git a/e2e/paths/ticket-module/05_create_new_tracking_state.spec.js b/e2e/paths/ticket-module/05_create_new_tracking_state.spec.js index ce44e1b266..ac7addc2ae 100644 --- a/e2e/paths/ticket-module/05_create_new_tracking_state.spec.js +++ b/e2e/paths/ticket-module/05_create_new_tracking_state.spec.js @@ -61,7 +61,7 @@ describe('Ticket', () => { .click(selectors.createStateView.saveStateButton) .waitForSnackbar() .then(result => { - expect(result).toContain('No changes to save'); + expect(result).toEqual(jasmine.arrayContaining(['No changes to save'])); }); }); @@ -73,7 +73,7 @@ describe('Ticket', () => { .click(selectors.createStateView.saveStateButton) .waitForSnackbar() .then(result => { - expect(result).toContain('Data saved!'); + expect(result).toEqual(jasmine.arrayContaining(['Data saved!'])); }); }); @@ -94,7 +94,7 @@ describe('Ticket', () => { .click(selectors.createStateView.saveStateButton) .waitForSnackbar() .then(result => { - expect(result).toContain('Data saved!'); + expect(result).toEqual(jasmine.arrayContaining(['Data saved!'])); }); }); });