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'); });