Files
enterprise-addons/sign/static/tests/action_utils.js
T

82 lines
2.3 KiB
JavaScript

import {
onRpc,
patchWithCleanup,
defineActions,
mountWebClient,
} from "@web/../tests/web_test_helpers";
import { Document } from "@sign/components/sign_request/document_signable";
export const actionId = 9;
export const defaultMockRPC = () =>
Promise.resolve({
html: `
<span>
def
<div class='o_sign_cp_pager'>
<div class="signer-status">
<p class="o_sign_signer_status o_sign_signer_waiting" data-id="1"></p>
<p class="o_sign_signer_status o_sign_signer_waiting" data-id="2"></p>
</div>
<input id="o_sign_input_sign_request_state" type="hidden" value="sent"/>
</div>
<iframe srcdoc="<body></body>" src="/sign/get_document/5/abc" class="o_iframe o_sign_pdf_iframe"/>
</span>
`,
context: {},
});
export const defaultGetOriginalDocuments = () =>
Promise.resolve({
original_documents: [{
id: 1,
name: "test.pdf"
}]
});
export const defaultGetCompletedDocuments = () =>
Promise.resolve({
completed_documents: [{
id: 1,
name: "test.pdf"
}]
});
export async function createDocumentWebClient(config) {
config = {
actionContext: config.actionContext || {},
getDataFromHTML: config.getDataFromHTML || (() => {}),
tag: config.tag,
};
const actions = {
id: actionId,
name: "A Client Action",
tag: config.tag,
type: "ir.actions.client",
context: {
id: 5,
token: "abc",
state: "sent",
create_uid: 1,
request_item_states: { 1: true, 2: false },
...config.actionContext,
},
};
patchWithCleanup(Document.prototype, {
getDataFromHTML() {
config.getDataFromHTML();
this.requestState = "sent";
},
initializeIframe() {
return;
},
});
onRpc("/sign/get_document/5/abc", defaultMockRPC);
onRpc("/sign/get_original_documents/5/abc", defaultGetOriginalDocuments);
onRpc("/sign/get_completed_documents/5/abc", defaultGetCompletedDocuments);
defineActions([actions]);
await mountWebClient();
}