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/note/static/tests | |
| parent | 0a15094050bfde69a06d6eff798e9a8ddf2b8c21 (diff) | |
initial commit 2
Diffstat (limited to 'addons/note/static/tests')
| -rw-r--r-- | addons/note/static/tests/systray_activity_menu_tests.js | 130 |
1 files changed, 130 insertions, 0 deletions
diff --git a/addons/note/static/tests/systray_activity_menu_tests.js b/addons/note/static/tests/systray_activity_menu_tests.js new file mode 100644 index 00000000..095bbb23 --- /dev/null +++ b/addons/note/static/tests/systray_activity_menu_tests.js @@ -0,0 +1,130 @@ +odoo.define('note.systray.ActivityMenuTests', function (require) { +"use strict"; + +const { afterEach, beforeEach, start } = require('mail/static/src/utils/test_utils.js'); +var ActivityMenu = require('mail.systray.ActivityMenu'); + +var testUtils = require('web.test_utils'); + +QUnit.module('note', {}, function () { +QUnit.module("ActivityMenu", { + beforeEach() { + beforeEach(this); + + Object.assign(this.data, { + 'mail.activity.menu': { + fields: { + name: { type: "char" }, + model: { type: "char" }, + type: { type: "char" }, + planned_count: { type: "integer" }, + today_count: { type: "integer" }, + overdue_count: { type: "integer" }, + total_count: { type: "integer" } + }, + records: [], + }, + 'note.note': { + fields: { + memo: { type: 'char' }, + }, + records: [], + } + }); + }, + afterEach() { + afterEach(this); + }, +}); + +QUnit.test('note activity menu widget: create note from activity menu', async function (assert) { + assert.expect(15); + var self = this; + + const { widget } = await start({ + data: this.data, + mockRPC: function (route, args) { + if (args.method === 'systray_get_activities') { + return Promise.resolve(self.data['mail.activity.menu'].records); + } + if (route === '/note/new') { + if (args.date_deadline) { + var note = { + id: 1, + memo: args.note, + date_deadline: args.date_deadline + }; + self.data['note.note'].records.push(note); + if (_.isEmpty(self.data['mail.activity.menu'].records)) { + self.data['mail.activity.menu'].records.push({ + name: "Note", + model: "note.note", + type: "activity", + planned_count: 0, + today_count: 0, + overdue_count: 0, + total_count: 0, + }); + } + self.data['mail.activity.menu'].records[0].today_count++; + self.data['mail.activity.menu'].records[0].total_count++; + } + return Promise.resolve(); + } + return this._super(route, args); + }, + }); + + const activityMenu = new ActivityMenu(widget); + await activityMenu.appendTo($('#qunit-fixture')); + assert.hasClass(activityMenu.$el, 'o_mail_systray_item', + 'should be the instance of widget'); + assert.strictEqual(activityMenu.$('.o_notification_counter').text(), '0', + "should not have any activity notification initially"); + + // toggle quick create for note + await testUtils.dom.click(activityMenu.$('.dropdown-toggle')); + assert.containsOnce(activityMenu, '.o_no_activity', + "should not have any activity preview"); + assert.doesNotHaveClass(activityMenu.$('.o_note_show'), 'd-none', + 'ActivityMenu should have Add new note CTA'); + await testUtils.dom.click(activityMenu.$('.o_note_show')); + assert.hasClass(activityMenu.$('.o_note_show'), 'd-none', + 'ActivityMenu should hide CTA when entering a new note'); + assert.doesNotHaveClass(activityMenu.$('.o_note'), 'd-none', + 'ActivityMenu should display input for new note'); + + // creating quick note without date + await testUtils.fields.editInput(activityMenu.$("input.o_note_input"), "New Note"); + await testUtils.dom.click(activityMenu.$(".o_note_save")); + assert.strictEqual(activityMenu.$('.o_notification_counter').text(), '1', + "should increment activity notification counter after creating a note"); + assert.containsOnce(activityMenu, '.o_mail_preview[data-res_model="note.note"]', + "should have an activity preview that is a note"); + assert.strictEqual(activityMenu.$('.o_activity_filter_button[data-filter="today"]').text().trim(), + "1 Today", + "should display one note for today"); + + assert.doesNotHaveClass(activityMenu.$('.o_note_show'), 'd-none', + 'ActivityMenu add note button should be displayed'); + assert.hasClass(activityMenu.$('.o_note'), 'd-none', + 'ActivityMenu add note input should be hidden'); + + // creating quick note with date + await testUtils.dom.click(activityMenu.$('.o_note_show')); + activityMenu.$('input.o_note_input').val("New Note"); + await testUtils.dom.click(activityMenu.$(".o_note_save")); + assert.strictEqual(activityMenu.$('.o_notification_counter').text(), '2', + "should increment activity notification counter after creating a second note"); + assert.strictEqual(activityMenu.$('.o_activity_filter_button[data-filter="today"]').text().trim(), + "2 Today", + "should display 2 notes for today"); + assert.doesNotHaveClass(activityMenu.$('.o_note_show'), 'd-none', + 'ActivityMenu add note button should be displayed'); + assert.hasClass(activityMenu.$('.o_note'), 'd-none', + 'ActivityMenu add note input should be hidden'); + widget.destroy(); +}); +}); + +}); |
