37 lines
1.9 KiB
JavaScript
37 lines
1.9 KiB
JavaScript
const test = require('node:test');
|
|
const assert = require('node:assert/strict');
|
|
const fs = require('node:fs');
|
|
|
|
const { buildUsersEditViewModel, buildUsersAddViewModel } = require('../src/web/routes/settings/users/form-view-model');
|
|
const usersFormTemplate = fs.readFileSync(require.resolve('../src/web/views/settings/users/form.hbs'), 'utf8');
|
|
|
|
test('user edit view model includes delete confirmation text', () => {
|
|
const model = buildUsersEditViewModel({ id: 12, inUse: false, roleIds: [] }, 'Saved.', { id: 1 }, []);
|
|
|
|
assert.equal(model.footerDeleteUrl, '/settings/users/12/delete');
|
|
assert.equal(model.footerDeleteConfirmMessage, 'Delete this user?');
|
|
assert.equal(model.footerDeleteDisabled, false);
|
|
assert.equal(model.showSaveSecondaryActions, true);
|
|
assert.equal(model.formAttrs, 'data-async-save data-async-save-close-url="/settings/users" data-async-save-new-url="/settings/users/new"');
|
|
});
|
|
|
|
test('user add view model keeps delete disabled without a confirm message', () => {
|
|
const model = buildUsersAddViewModel('Saved.', { id: 1 }, [], { name: 'New User', username: 'newuser' }, 'primary');
|
|
|
|
assert.equal(model.footerDeleteDisabled, true);
|
|
assert.equal(model.footerDeleteUrl, '');
|
|
assert.equal(model.footerDeleteConfirmMessage, undefined);
|
|
assert.equal(model.formAttrs, 'data-async-save data-async-save-close-url="/settings/users" data-async-save-new-redirect="response-url" data-async-save-new-url="/settings/users/new"');
|
|
});
|
|
|
|
test('user add view model uses success messaging for redirected saves', () => {
|
|
const model = buildUsersAddViewModel('User created.', { id: 1 }, [], { name: 'New User', username: 'newuser' });
|
|
|
|
assert.equal(model.messageVariant, 'success');
|
|
});
|
|
|
|
test('user form keeps username editable in the admin section', () => {
|
|
assert.ok(usersFormTemplate.includes('name="username"'));
|
|
assert.ok(!usersFormTemplate.includes('{{#if isEdit}}disabled{{else}}required{{/if}}'));
|
|
assert.ok(usersFormTemplate.includes('required />'));
|
|
}); |