Skip to content

Commit

Permalink
fix: ensure MetricMetadata is always an object + remove underscored f…
Browse files Browse the repository at this point in the history
…rom fields (smoya#14)
  • Loading branch information
smoya authored Nov 13, 2023
1 parent b172233 commit 77156f2
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 24 deletions.
18 changes: 9 additions & 9 deletions src/metrics.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,16 +5,16 @@ export enum MetricType {
Gauge = 'gauge'
}

export type MetricMetadata = { [key: string]: any };
export type MetricMetadata = Record<string, unknown>

export function MetadataFromDocument(doc: AsyncAPIDocument, metadata: MetricMetadata = []): MetricMetadata {
metadata['_asyncapi_version'] = doc.version();
metadata['_asyncapi_servers'] = doc.allServers().all().length;
metadata['_asyncapi_channels'] = doc.allChannels().all().length;
metadata['_asyncapi_messages'] = doc.allMessages().all().length;
metadata['_asyncapi_operations_send'] = doc.allOperations().filterBySend().length;
metadata['_asyncapi_operations_receive'] = doc.allOperations().filterByReceive().length;
metadata['_asyncapi_schemas'] = doc.allSchemas().all().length;
export function MetadataFromDocument(doc: AsyncAPIDocument, metadata: MetricMetadata = {}): MetricMetadata {
metadata['asyncapi_version'] = doc.version();
metadata['asyncapi_servers'] = doc.allServers().all().length;
metadata['asyncapi_channels'] = doc.allChannels().all().length;
metadata['asyncapi_messages'] = doc.allMessages().all().length;
metadata['asyncapi_operations_send'] = doc.allOperations().filterBySend().length;
metadata['asyncapi_operations_receive'] = doc.allOperations().filterByReceive().length;
metadata['asyncapi_schemas'] = doc.allSchemas().all().length;
return metadata;
}

Expand Down
30 changes: 15 additions & 15 deletions test/metrics.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,24 +8,24 @@ describe('Metrics', function() {
it('MetadataFromDocument with no previous metadata', async function() {
const {document} = await parser.parse(doc);
const metadata = MetadataFromDocument(document as AsyncAPIDocument);
expect(metadata['_asyncapi_version']).toEqual('2.6.0');
expect(metadata['_asyncapi_servers']).toEqual(1);
expect(metadata['_asyncapi_channels']).toEqual(2);
expect(metadata['_asyncapi_messages']).toEqual(2);
expect(metadata['_asyncapi_operations_send']).toEqual(1);
expect(metadata['_asyncapi_operations_receive']).toEqual(1);
expect(metadata['_asyncapi_schemas']).toEqual(2);
expect(metadata['asyncapi_version']).toEqual('2.6.0');
expect(metadata['asyncapi_servers']).toEqual(1);
expect(metadata['asyncapi_channels']).toEqual(2);
expect(metadata['asyncapi_messages']).toEqual(2);
expect(metadata['asyncapi_operations_send']).toEqual(1);
expect(metadata['asyncapi_operations_receive']).toEqual(1);
expect(metadata['asyncapi_schemas']).toEqual(2);
});
it('MetadataFromDocument with previous metadata', async function() {
const {document} = await parser.parse(doc);
const metadata = MetadataFromDocument(document as AsyncAPIDocument, { test: true });
expect(metadata['test']).toBeTruthy();
expect(metadata['_asyncapi_version']).toEqual('2.6.0');
expect(metadata['_asyncapi_servers']).toEqual(1);
expect(metadata['_asyncapi_channels']).toEqual(2);
expect(metadata['_asyncapi_messages']).toEqual(2);
expect(metadata['_asyncapi_operations_send']).toEqual(1);
expect(metadata['_asyncapi_operations_receive']).toEqual(1);
expect(metadata['_asyncapi_schemas']).toEqual(2);
expect(metadata['asyncapi_version']).toEqual('2.6.0');
expect(metadata['asyncapi_servers']).toEqual(1);
expect(metadata['asyncapi_channels']).toEqual(2);
expect(metadata['asyncapi_messages']).toEqual(2);
expect(metadata['asyncapi_operations_send']).toEqual(1);
expect(metadata['asyncapi_operations_receive']).toEqual(1);
expect(metadata['asyncapi_schemas']).toEqual(2);
});
});
});

0 comments on commit 77156f2

Please sign in to comment.