bmc_hub/tests/js/contact-lifecycle.test.cjs
2026-11-03 09:08:51 +01:00

19 lines
1.1 KiB
JavaScript

const assert = require('node:assert/strict');
global.window = {};
require('../../static/js/contact-lifecycle.js');
const {escape, templateOptions, editPayload} = window.ContactLifecycle;
assert.equal(escape('<img src=x onerror="bad">'), '&lt;img src=x onerror=&quot;bad&quot;&gt;');
const templates = [
{id:1,category:'onboarding',customer_id:null},
{id:2,category:'onboarding',customer_id:12},
{id:3,category:'offboarding',customer_id:12},
{id:4,category:'onboarding',customer_id:13},
];
assert.deepEqual(templateOptions(templates, '12', 'onboarding').map(item => item.id), [1,2]);
assert.deepEqual(templateOptions(templates, '12', 'offboarding').map(item => item.id), [3]);
assert.deepEqual(templateOptions(templates, '', 'onboarding').map(item => item.id), [1]);
const update = {customer_id:12,event_date:'2026-11-20',lead_days:14,auto_create:true,parent_case_id:99,template_id:1,responsible_user_id:2};
assert.deepEqual(editPayload(update,true), {event_date:'2026-11-20',lead_days:14,auto_create:true});
assert.equal(editPayload(update,false), update);
console.log('Contact lifecycle escaping and customer/type template scoping passed');