Files
odoo_source/addons/mail/static/tests/helpers/model_definitions_setup.js
T
tsm-odoo 7131f7c626 [IMP] mail, *: add support for guests/dynamic users in tests
*: bus, calendar, im_livechat, web, website_livechat.

This PR adds the possibility to set the current user during tests as
well as the mail guest. This will be used to test mail guest page and
livechat once the visitors will be treated as guests.

part of task-3332628

closes odoo/odoo#130811

Related: odoo/enterprise#45331
Signed-off-by: Matthieu Stockbauer (tsm) <tsm@odoo.com>
2023-08-09 14:36:12 +02:00

143 lines
4.3 KiB
JavaScript

/* @odoo-module */
import {
addFakeModel,
addModelNamesToFetch,
insertModelFields,
insertRecords,
} from "@bus/../tests/helpers/model_definitions_helpers";
import { TEST_GROUP_IDS } from "@bus/../tests/helpers/test_constants";
import { Command } from "@mail/../tests/helpers/command";
import { uniqueId } from "@web/core/utils/functions";
//--------------------------------------------------------------------------
// Models
//--------------------------------------------------------------------------
addModelNamesToFetch([
"mail.activity",
"mail.activity.type",
"discuss.channel",
"discuss.channel.member",
"discuss.channel.rtc.session",
"discuss.gif.favorite",
"discuss.voice.metadata",
"mail.followers",
"mail.guest",
"mail.link.preview",
"mail.message",
"mail.message.reaction",
"mail.message.subtype",
"mail.notification",
"mail.shortcode",
"mail.template",
"mail.tracking.value",
"res.users.settings",
"res.users.settings.volumes",
]);
addFakeModel("res.fake", {
message_ids: { string: "Messages", type: "one2many", relation: "mail.message" },
activity_ids: { string: "Activities", type: "one2many", relation: "mail.activity" },
message_follower_ids: { string: "Followers", type: "char" },
email_cc: { type: "char" },
partner_ids: { relation: "res.partner", string: "Related partners", type: "one2many" },
});
addFakeModel("m2x.avatar.user", {
user_id: { type: "many2one", relation: "res.users" },
user_ids: { type: "many2many", relation: "res.users", string: "Users" },
});
//--------------------------------------------------------------------------
// Insertion of fields
//--------------------------------------------------------------------------
insertModelFields("mail.activity", {
chaining_type: { default: "suggest" },
});
insertModelFields("discuss.channel", {
author_id: {
default() {
return this.pyEnv.currentPartnerId;
},
},
avatarCacheKey: { string: "Avatar Cache Key", type: "datetime" },
channel_member_ids: {
default() {
return [Command.create({ partner_id: this.pyEnv.currentPartnerId })];
},
},
channel_type: { default: "channel" },
group_based_subscription: { string: "Group based subscription", type: "boolean" },
group_public_id: {
default() {
return TEST_GROUP_IDS.groupUserId;
},
},
uuid: { default: () => uniqueId("discuss.channel_uuid-") },
});
insertModelFields("discuss.channel.member", {
fold_state: { default: "open" },
is_pinned: { default: true },
message_unread_counter: { default: 0 },
});
insertModelFields("mail.message", {
author_id: {
default() {
return this.pyEnv.currentPartnerId;
},
},
history_partner_ids: {
relation: "res.partner",
string: "Partners with History",
type: "many2many",
},
pinned_at: { default: () => false },
is_discussion: { string: "Discussion", type: "boolean" },
is_note: { string: "Discussion", type: "boolean" },
needaction_partner_ids: {
relation: "res.partner",
string: "Partners with Need Action",
type: "many2many",
},
res_model_name: { string: "Res Model Name", type: "char" },
});
insertModelFields("mail.message.subtype", {
default: { default: true },
subtype_xmlid: { type: "char" },
});
insertModelFields("res.users.settings", {
is_discuss_sidebar_category_channel_open: { default: true },
is_discuss_sidebar_category_chat_open: { default: true },
});
//--------------------------------------------------------------------------
// Insertion of records
//--------------------------------------------------------------------------
insertRecords("mail.activity.type", [
{ icon: "fa-envelope", id: 1, name: "Email" },
{ icon: "fa-upload", id: 28, name: "Upload Document" },
]);
insertRecords("mail.message.subtype", [
{
default: false,
internal: true,
name: "Activities",
sequence: 90,
subtype_xmlid: "mail.mt_activities",
},
{
default: false,
internal: true,
name: "Note",
sequence: 100,
subtype_xmlid: "mail.mt_note",
track_recipients: true,
},
{ name: "Discussions", sequence: 0, subtype_xmlid: "mail.mt_comment", track_recipients: true },
]);