20 lines
1.2 KiB
JavaScript
20 lines
1.2 KiB
JavaScript
const assert = require('node:assert/strict');
|
|
const fs = require('node:fs');
|
|
const vm = require('node:vm');
|
|
const source=fs.readFileSync('app/modules/sag/templates/detail_v4.html','utf8');
|
|
const start=source.indexOf(' function updateSubscriptionTabCount(payload)');
|
|
const end=source.indexOf(' async function loadSubscriptionForCase()',start);
|
|
let badge;
|
|
const context={window:{},_setCaseTabCountBadge:(id,value)=>{assert.equal(id,'subscriptionTabCountBadge');badge=value;}};
|
|
vm.createContext(context);
|
|
vm.runInContext(source.slice(start,end),context);
|
|
context.updateSubscriptionTabCount({current_subscriptions:[{id:12,status:'draft'}]});
|
|
assert.equal(badge,1);
|
|
context.updateSubscriptionTabCount({current_subscriptions:[{id:12}],upcoming_subscriptions:[{id:'12'},{id:13}],ended_subscriptions:[{id:14}]});
|
|
assert.equal(badge,3);
|
|
context.updateSubscriptionTabCount({});
|
|
assert.equal(badge,0);
|
|
assert(!source.includes("const subscriptionCount = _countRows('#subscriptionItemsBody')"));
|
|
assert(fs.readFileSync('app/modules/sag/templates/detail_v5.html','utf8').includes('extends "modules/sag/templates/detail_v4.html"'));
|
|
console.log('Subscription tab count OK: draft, unique agreements, empty case, V5 inheritance');
|