'use strict' import { EventName, EventCategory, EventComponent } from '../../src/dto/shared.dto' import { expect } from 'chai' import { metrics } from '../../src/metrics' const API_KEY_HASH = process.env.API_KEY_HASH describe('Metrics', () => { const metricsUrl = 'https://affinity-metrics.dev.affinity-project.org' it('#send did created', async() => { const eventDidCreated = { link: 'some_hash_from_did', name: EventName.DID_CREATED, category: EventCategory.DID, subCategory: 'registry', component: EventComponent.AffinidiBrowserSDK, } const response = await metrics.send(eventDidCreated, API_KEY_HASH, metricsUrl) expect(response).to.exist expect(response.link).to.be.not.equal(eventDidCreated.link) expect(response.linkDescription).to.be.equal('did') expect(response.name).to.be.equal(eventDidCreated.name) expect(response.category).to.be.equal(eventDidCreated.category) expect(response.subCategory).to.be.equal(eventDidCreated.subCategory) expect(response.component).to.be.equal(eventDidCreated.component) }) it('#send vc saved', async() => { const eventVcSaved = { link: 'hashed_vc_id', secondaryLink: 'issuerId', name: EventName.VC_SAVED, category: EventCategory.VC, subCategory: 'VC saved', component: EventComponent.AffinidiBrowserSDK, metadata: {'vcType': ['VerifiableCredential', 'SomeTestCredential']}, } const response = await metrics.send(eventVcSaved, API_KEY_HASH, metricsUrl) expect(response).to.exist expect(response.link).to.be.not.equal(eventVcSaved.link) expect(response.linkDescription).to.be.equal('vcId') expect(response.secondaryLink).to.be.equal('issuerId') expect(response.secondaryLinkDescription).to.be.equal('issuerId') expect(response.name).to.be.equal(eventVcSaved.name) expect(response.category).to.be.equal(eventVcSaved.category) expect(response.subCategory).to.be.equal(eventVcSaved.subCategory) expect(response.component).to.be.equal(eventVcSaved.component) }) it('#send user onboarded', async() => { const eventUserOnboarded = { link: 'hashed_api_key', name: EventName.USER_ONBOARDED, category: EventCategory.APPLICATION, subCategory: 'create', component: EventComponent.AffinidiOnboarding, } const response = await metrics.send(eventUserOnboarded, API_KEY_HASH, metricsUrl) expect(response).to.exist expect(response.link).to.be.not.equal(eventUserOnboarded.link) expect(response.linkDescription).to.be.equal('apiKey') expect(response.name).to.be.equal(eventUserOnboarded.name) expect(response.category).to.be.equal(eventUserOnboarded.category) expect(response.subCategory).to.be.equal(eventUserOnboarded.subCategory) expect(response.component).to.be.equal(eventUserOnboarded.component) }) it('#send bloom read', async() => { const eventBloomRead = { link: 'hashed_api_key', name: EventName.BLOOM_VAULT_READ, category: EventCategory.APPLICATION, subCategory: 'bloom read', component: EventComponent.AffinidiVaultMigrationService, } const response = await metrics.send(eventBloomRead, API_KEY_HASH, metricsUrl) expect(response).to.exist expect(response.link).to.be.not.equal(eventBloomRead.link) expect(response.linkDescription).to.be.equal('apiKey') expect(response.name).to.be.equal(eventBloomRead.name) expect(response.category).to.be.equal(eventBloomRead.category) expect(response.subCategory).to.be.equal(eventBloomRead.subCategory) expect(response.component).to.be.equal(eventBloomRead.component) }) it('#send bloom write', async() => { const eventBloomWrite = { link: 'hashed_api_key', name: EventName.BLOOM_VAULT_WRITE, category: EventCategory.APPLICATION, subCategory: 'bloom write', component: EventComponent.AffinidiVaultMigrationService, } const response = await metrics.send(eventBloomWrite, API_KEY_HASH, metricsUrl) expect(response).to.exist expect(response.link).to.be.not.equal(eventBloomWrite.link) expect(response.linkDescription).to.be.equal('apiKey') expect(response.name).to.be.equal(eventBloomWrite.name) expect(response.category).to.be.equal(eventBloomWrite.category) expect(response.subCategory).to.be.equal(eventBloomWrite.subCategory) expect(response.component).to.be.equal(eventBloomWrite.component) }) })