diff options
| author | stephanchrst <stephanchrst@gmail.com> | 2022-05-10 21:51:50 +0700 |
|---|---|---|
| committer | stephanchrst <stephanchrst@gmail.com> | 2022-05-10 21:51:50 +0700 |
| commit | 3751379f1e9a4c215fb6eb898b4ccc67659b9ace (patch) | |
| tree | a44932296ef4a9b71d5f010906253d8c53727726 /addons/hr_holidays/static/src/bugfix/bugfix_tests.js | |
| parent | 0a15094050bfde69a06d6eff798e9a8ddf2b8c21 (diff) | |
initial commit 2
Diffstat (limited to 'addons/hr_holidays/static/src/bugfix/bugfix_tests.js')
| -rw-r--r-- | addons/hr_holidays/static/src/bugfix/bugfix_tests.js | 110 |
1 files changed, 110 insertions, 0 deletions
diff --git a/addons/hr_holidays/static/src/bugfix/bugfix_tests.js b/addons/hr_holidays/static/src/bugfix/bugfix_tests.js new file mode 100644 index 00000000..6f655603 --- /dev/null +++ b/addons/hr_holidays/static/src/bugfix/bugfix_tests.js @@ -0,0 +1,110 @@ +odoo.define('hr_holidays/static/src/bugfix/bugfix_tests.js', function (require) { +'use strict'; + +/** + * This file allows introducing new QUnit test modules without contaminating + * other test files. This is useful when bug fixing requires adding new + * components for instance in stable versions of Odoo. Any test that is defined + * in this file should be isolated in its own file in master. + */ +QUnit.module('hr_holidays', {}, function () { +QUnit.module('bugfix', {}, function () { +QUnit.module('bugfix_tests.js', { + +}); +}); +}); + +}); + +// FIXME move me in hr_holidays/static/src/components/thread_view/thread_view_tests.js +odoo.define('hr_holidays/static/src/components/thread_view/thread_view_tests.js', function (require) { +'use strict'; + +const components = { + ThreadView: require('mail/static/src/components/thread_view/thread_view.js'), +}; +const { + afterEach, + beforeEach, + createRootComponent, + start, +} = require('mail/static/src/utils/test_utils.js'); + +QUnit.module('hr_holidays', {}, function () { +QUnit.module('components', {}, function () { +QUnit.module('thread_view', {}, function () { +QUnit.module('thread_view_tests.js', { + beforeEach() { + beforeEach(this); + + /** + * @param {mail.thread_view} threadView + * @param {Object} [otherProps={}] + */ + this.createThreadViewComponent = async (threadView, otherProps = {}) => { + const target = this.widget.el; + const props = Object.assign({ threadViewLocalId: threadView.localId }, otherProps); + await createRootComponent(this, components.ThreadView, { props, target }); + }; + + this.start = async params => { + const { afterEvent, env, widget } = await start(Object.assign({}, params, { + data: this.data, + })); + this.afterEvent = afterEvent; + this.env = env; + this.widget = widget; + }; + }, + afterEach() { + afterEach(this); + }, +}); + +QUnit.test('out of office message on direct chat with out of office partner', async function (assert) { + assert.expect(2); + + // Returning date of the out of office partner, simulates he'll be back in a month + const returningDate = moment.utc().add(1, 'month'); + // Needed partner & user to allow simulation of message reception + this.data['res.partner'].records.push({ + id: 11, + name: "Foreigner partner", + out_of_office_date_end: returningDate.format("YYYY-MM-DD HH:mm:ss"), + }); + this.data['mail.channel'].records = [{ + channel_type: 'chat', + id: 20, + members: [this.data.currentPartnerId, 11], + }]; + await this.start(); + const thread = this.env.models['mail.thread'].findFromIdentifyingData({ + id: 20, + model: 'mail.channel' + }); + const threadViewer = this.env.models['mail.thread_viewer'].create({ + hasThreadView: true, + thread: [['link', thread]], + }); + await this.createThreadViewComponent(threadViewer.threadView, { hasComposer: true }); + assert.containsOnce( + document.body, + '.o_ThreadView_outOfOffice', + "should have an out of office alert on thread view" + ); + const formattedDate = returningDate.toDate().toLocaleDateString( + this.env.messaging.locale.language.replace(/_/g,'-'), + { day: 'numeric', month: 'short' } + ); + assert.ok( + document.querySelector('.o_ThreadView_outOfOffice').textContent.includes(formattedDate), + "out of office message should mention the returning date" + ); +}); + +}); +}); +}); + +}); |
