const test = require('node:test'); const assert = require('node:assert/strict'); const path = require('node:path'); const Handlebars = require('handlebars'); const { registerHandlebars } = require('../src/web/handlebars'); function compileActionButtons(hash) { const hb = Handlebars.create(); registerHandlebars(hb, { viewsRoot: path.join(__dirname, '..', 'src', 'web', 'views'), hasPermission: () => true, hasAnyPermission: () => true }); const template = hb.compile('{{{saveActionButtons ' + Object.entries(hash).map(function ([key, value]) { return key + '="' + String(value).replace(/"/g, '"') + '"'; }).join(' ') + '}}}'); return String(template({})); } test('save action buttons render save close new cancel and delete controls', () => { const html = compileActionButtons({ formId: 'example-form', saveUrl: '/items/1', cancelUrl: '/items', deleteUrl: '/items/1/delete', deleteConfirmMessage: 'Delete this item?', deleteTitle: 'Delete is disabled.', showSaveAndClose: true, showSaveAndNew: true, showDelete: true }); assert.match(html, /