mail/static/tests/helpers/mock_server/controllers/channel.js
Данил Воробьев 6e6f15d803 initial commit
2024-05-03 09:40:35 +00:00

42 lines
1.3 KiB
JavaScript

/* @odoo-module */
import { patch } from "@web/core/utils/patch";
import { MockServer } from "@web/../tests/helpers/mock_server";
patch(MockServer.prototype, {
/**
* @override
*/
async _performRPC(route, args) {
if (route === "/discuss/channel/attachments") {
return this._mockRouteDiscussChannelAttachments(
args.channel_id,
args.limit,
args.older_attachment_id
);
}
return super._performRPC(route, args);
},
/**
* Simulates the `/discuss/channel/attachments` route.
*
* @param {number} channelId
* @param {number} [limit=30]
* @param {number} [olderAttachmentId]
*/
_mockRouteDiscussChannelAttachments(channelId, limit = 30, olderAttachmentId = null) {
const attachmentIds = this.models["ir.attachment"].records
.filter(
({ id, res_id, res_model }) =>
res_id === channelId &&
res_model === "discuss.channel" &&
(!olderAttachmentId || id < olderAttachmentId)
)
.sort()
.slice(0, limit)
.map(({ id }) => id);
return this._mockIrAttachment_attachmentFormat(attachmentIds);
},
});