diff --git a/tests/integration/didHelpers.spec.ts b/tests/integration/didHelpers.spec.ts index 776cfcae3..628734faa 100644 --- a/tests/integration/didHelpers.spec.ts +++ b/tests/integration/didHelpers.spec.ts @@ -7,6 +7,7 @@ import type { ApiPromise } from '@polkadot/api' +import { CType } from '@kiltprotocol/credentials' import { DidHelpers, disconnect } from '@kiltprotocol/sdk-js' import type { DidDocument, @@ -325,6 +326,52 @@ describe('verification methods', () => { }, 30_000) }) +describe('transact', () => { + let keypair: KeyringPair + let didDocument: DidDocument + beforeAll(async () => { + keypair = Crypto.makeKeypairFromUri('//Transact') + didDocument = ( + await DidHelpers.createDid({ + api, + signers: [keypair], + submitter: paymentAccount, + fromPublicKey: keypair, + }).submit() + ).asConfirmed.didDocument + + didDocument = ( + await DidHelpers.setVerificationMethod({ + api, + signers: [keypair], + submitter: paymentAccount, + didDocument, + publicKey: keypair, + relationship: 'assertionMethod', + }).submit() + ).asConfirmed.didDocument + }) + + it('creates a ctype', async () => { + const ctype = CType.fromProperties('thing', { thang: { type: 'string' } }) + const serialized = CType.toChain(ctype) + const call = api.tx.ctype.add(serialized) + + const result = await DidHelpers.transact({ + api, + signers: [keypair], + submitter: paymentAccount, + didDocument, + call, + expectedEvents: [{ section: 'ctype', method: 'CTypeCreated' }], + }).submit() + + expect(result.status).toStrictEqual('confirmed') + expect(result.asConfirmed.didDocument).toMatchObject(didDocument) + await expect(CType.verifyStored(ctype)).resolves.not.toThrow() + }, 30_000) +}) + afterAll(async () => { await disconnect() })