import { RevocationStatusList } from '../../../src/statusList/revocationStatusList.js'; import { RevocationStatusListBitSet } from '../../../src/statusList/revocationStatusListBitSet.js'; import { STATUS_LIST } from '../../../src/config.js'; describe('RevocationStatusList should', () => { it('revoke a credential', () => { const encodedList = 'eJztwTEBAAAAwqBK65/OxxhAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANwAXR8F0Q=='; const expectedEncodedList = 'eJztwQENAAAMwyBLvX9zT6YDKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIC5Hl0hBdI='; const revocationStatusList: RevocationStatusList = RevocationStatusListBitSet.fromEncoded(encodedList); revocationStatusList.revokeCredential(1); expect(revocationStatusList.encoded()).toBe(expectedEncodedList); }); it('decode an EncodedList with a credential revoked', () => { const encodedList = 'eJztwQENAAAMwyBLvX9zT6YDKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIC5Hl0hBdI='; const revocationStatusList: RevocationStatusList = RevocationStatusListBitSet.fromEncoded(encodedList); const expectedRevocationStatusList = new RevocationStatusListBitSet(); expectedRevocationStatusList.revokeCredential(1); expect(revocationStatusList.encoded()).toBe( expectedRevocationStatusList.encoded(), ); }); it('raise an Error when the credentialId to revoke is not valid', () => { const expectedRevocationStatusList = new RevocationStatusListBitSet(); expect(() => expectedRevocationStatusList.revokeCredential( STATUS_LIST.MAX_CREDENTIAL_ID + 1, ), ).toThrow(Error); expect(() => expectedRevocationStatusList.revokeCredential(0)).toThrow( Error, ); }); });