fix(acceptance): keep safe fleet metadata clear of sensitive report fields

This commit is contained in:
2026-10-03 23:58:47 +08:00
parent 19e9913f30
commit 3f6083ff02
6 changed files with 37 additions and 5 deletions
@@ -519,6 +519,17 @@ test('missing isolated cost actor preparation rejects before readers or fixture
assert.equal(touched, false)
})
test('cost actor journal removes credential keys while retaining IDs, roles and boolean removal evidence', async () => {
const { fleetCostActorJournalData } = await import('./fleet-test-env-acceptance.mjs')
const source = { membershipId: '12', roleIds: ['7'], password: 'actual-secret',
nested: { accessToken: 'actual-session', refreshToken: 'actual-refresh', status: 'ACTIVE' } }
const result = fleetCostActorJournalData(source)
assert.deepEqual(result, { membershipId: '12', roleIds: ['7'], credentialFieldsRemoved: true,
nested: { status: 'ACTIVE', credentialFieldsRemoved: true } })
assert.doesNotMatch(JSON.stringify(result), /"(?:password|accessToken|refreshToken)"\s*:/)
assert.equal(source.nested.accessToken, 'actual-session')
})
for (const failLogin of [false, true]) test(`cost actors create exact isolated roles and disable only owned accounts; login failure=${failLogin}`, async () => {
const calls = [], saved = [], roles = [], users = []
const context = { marker: 'RUN', token: 'admin-secret', createdResources: {}, async findAvailablePhone() { return '19900000000' },