Add page data delivery and publication guards
This commit is contained in:
@@ -0,0 +1,34 @@
|
||||
import assert from 'node:assert/strict';
|
||||
import test from 'node:test';
|
||||
import {
|
||||
DEFAULT_PAGE_DATA_ADMIN_PASSWORD,
|
||||
resolvePageDataBindAccess,
|
||||
resolvePageDataBindPassword,
|
||||
} from './page-data-workspace-bind.mjs';
|
||||
|
||||
test('resolvePageDataBindPassword defaults for password mode', () => {
|
||||
assert.equal(resolvePageDataBindPassword('password', null), DEFAULT_PAGE_DATA_ADMIN_PASSWORD);
|
||||
assert.equal(resolvePageDataBindPassword('password', ''), DEFAULT_PAGE_DATA_ADMIN_PASSWORD);
|
||||
assert.equal(resolvePageDataBindPassword('password', ' '), DEFAULT_PAGE_DATA_ADMIN_PASSWORD);
|
||||
});
|
||||
|
||||
test('resolvePageDataBindPassword accepts explicit valid password', () => {
|
||||
assert.equal(resolvePageDataBindPassword('password', 'MyPass1234'), 'MyPass1234');
|
||||
});
|
||||
|
||||
test('resolvePageDataBindPassword rejects short passwords', () => {
|
||||
assert.throws(
|
||||
() => resolvePageDataBindPassword('password', '888'),
|
||||
(error) => error.code === 'invalid_publish_input',
|
||||
);
|
||||
});
|
||||
|
||||
test('resolvePageDataBindPassword returns null for non-password modes', () => {
|
||||
assert.equal(resolvePageDataBindPassword('public', null), null);
|
||||
assert.equal(resolvePageDataBindPassword('login_required', 'secret123'), null);
|
||||
});
|
||||
|
||||
test('resolvePageDataBindAccess normalizes access mode', () => {
|
||||
assert.equal(resolvePageDataBindAccess('public'), 'public');
|
||||
assert.equal(resolvePageDataBindAccess('password'), 'password');
|
||||
});
|
||||
Reference in New Issue
Block a user