-
Notifications
You must be signed in to change notification settings - Fork 136
Expand file tree
/
Copy pathstatus-router.test.ts
More file actions
58 lines (53 loc) · 2.25 KB
/
status-router.test.ts
File metadata and controls
58 lines (53 loc) · 2.25 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
import { createAgent, CredentialStatus, VerifiableCredential } from "@veramo/core"
import { DIDDocument } from "did-resolver"
import { AbstractStatusMethod } from '../abstract-status-method'
import { CredentialStatusRouter } from '../status-router'
import { CredentialStatusReference } from '@veramo/core/src/types/vc-data-model'
import { ICredentialStatusRouter } from '@veramo/core/src/types/ICredentialStatusRouter'
import { ICredentialIssuer } from "@veramo/credential-w3c"
const referenceDidDoc: DIDDocument = { id: 'did:example:1234' }
const referenceCredentialStatus = <CredentialStatusReference>{
type: 'ExoticStatusMethod2022',
id: 'some-exotic-id',
}
const referenceCredential: VerifiableCredential & { credentialStatus: CredentialStatusReference } = {
'@context': [],
issuanceDate: new Date().toISOString(),
proof: {},
issuer: referenceDidDoc.id,
credentialSubject: {},
credentialStatus: referenceCredentialStatus
}
class ExoticStatusMethod2022 extends AbstractStatusMethod {
async checkCredentialStatus(args: any, context: any): Promise<CredentialStatus> {
return { verified: true }
}
async credentialStatusRead(args: any, context: any): Promise<VerifiableCredential> {
return referenceCredential
}
async credentialStatusGenerate(args: any): Promise<CredentialStatusReference> {
return <CredentialStatusReference>referenceCredential.credentialStatus
}
async credentialStatusUpdate(args: any): Promise<any> {
throw new Error("Method not implemented.")
}
}
describe('@veramo/credential-status/status-router', () => {
it('should route to the correct status method instance', async () => {
const statusMethod = new ExoticStatusMethod2022()
const agent = createAgent<ICredentialIssuer | ICredentialStatusRouter>({
plugins: [
new CredentialStatusRouter({
statusMethods: {
ExoticStatusMethod2022: statusMethod,
},
defaultStatusMethod: '',
})
]
})
const result = await agent.statusRouterCheckStatus({
credential: referenceCredential,
})
expect(result).toStrictEqual({ verified: true })
})
})