Release v2.5.6
This commit is contained in:
@@ -0,0 +1,74 @@
|
||||
const test = require('node:test');
|
||||
const assert = require('node:assert/strict');
|
||||
|
||||
const registerUsersRoutes = require('../src/web/routes/admin/users');
|
||||
|
||||
test('user duplicate route pre-fills the add form', async () => {
|
||||
const handlers = {};
|
||||
const app = {
|
||||
get(path, ...routeHandlers) {
|
||||
handlers[path] = routeHandlers;
|
||||
},
|
||||
post() {}
|
||||
};
|
||||
|
||||
const deps = {
|
||||
pool: {
|
||||
async query() {
|
||||
return [[]];
|
||||
}
|
||||
},
|
||||
common: {},
|
||||
pages: {
|
||||
renderUsersAddPage(message, currentUser, roles, formValues, messageVariant) {
|
||||
return JSON.stringify({ message, currentUser, roles, formValues, messageVariant });
|
||||
}
|
||||
},
|
||||
formatDashboardDate: () => '',
|
||||
getAuditUserId: () => 1,
|
||||
hashPassword: () => ({ hash: '', salt: '', iterations: 1 }),
|
||||
validatePasswordStrength: () => '',
|
||||
readArrayField: () => [],
|
||||
rbacData: {
|
||||
fetchRoles: async () => ([{ id: 2, name: 'Editors' }]),
|
||||
fetchUsersWithRolesPage: async () => ({ users: [], totalItems: 0, currentPage: 1 }),
|
||||
fetchUserWithRoles: async () => ({ id: 7, name: 'Alice', username: 'alice', roleIds: [2] }),
|
||||
syncUserRoles: async () => {}
|
||||
},
|
||||
requirePermission() {
|
||||
return function (_req, _res, next) {
|
||||
next();
|
||||
};
|
||||
}
|
||||
};
|
||||
|
||||
registerUsersRoutes(app, deps);
|
||||
|
||||
const routeHandlers = handlers['/users/:id/duplicate'];
|
||||
assert.equal(Array.isArray(routeHandlers), true);
|
||||
|
||||
const req = {
|
||||
params: { id: '7' },
|
||||
currentUser: { id: 1 }
|
||||
};
|
||||
const res = {
|
||||
send(value) {
|
||||
this.body = value;
|
||||
},
|
||||
redirect(url) {
|
||||
this.redirectedTo = url;
|
||||
},
|
||||
status(code) {
|
||||
this.statusCode = code;
|
||||
return this;
|
||||
}
|
||||
};
|
||||
|
||||
await routeHandlers[2](req, res, () => {});
|
||||
|
||||
const payload = JSON.parse(res.body);
|
||||
assert.equal(payload.formValues.name, 'Copy of Alice');
|
||||
assert.equal(Object.prototype.hasOwnProperty.call(payload.formValues, 'username'), false);
|
||||
assert.equal(payload.roles.length, 1);
|
||||
assert.equal(payload.roles[0].isSelected, true);
|
||||
});
|
||||
Reference in New Issue
Block a user