44 */
55
66'use strict'
7- const NAMES = require ( '#agentlib/metrics/names.js' )
8- const assertMetrics = require ( './assert-metrics' )
7+
98const semver = require ( 'semver' )
9+ const assertMetrics = require ( './assert-metrics' )
10+
11+ const {
12+ FEATURES : {
13+ INSTRUMENTATION : {
14+ SUBSCRIBER_USED ,
15+ ON_REQUIRE
16+ }
17+ }
18+ } = require ( '#agentlib/metrics/names.js' )
1019
1120/**
1221 * assertion to verify tracking metrics for a given
@@ -16,19 +25,29 @@ const semver = require('semver')
1625 * @param {string } params.pkg name of package
1726 * @param {string } params.version version of package
1827 * @param {Agent } params.agent agent instance
28+ * @param {boolean } params.subscriberType When true, the metrics are expected
29+ * to have been generated from a subscriber based instrumentation. Otherwise,
30+ * the metrics are expected to be generated from a shimmer based
31+ * instrumentation.
1932 * @param {object } [deps] Injected dependencies.
2033 * @param {object } [deps.assert] Assertion library to use.
2134 */
2235module . exports = function assertPackageMetrics (
23- { pkg, version, agent } ,
36+ { pkg, version, agent, subscriberType = false } ,
2437 { assert = require ( 'node:assert' ) } = { }
2538) {
26- const metrics = [
27- [ { name : `${ NAMES . FEATURES . INSTRUMENTATION . ON_REQUIRE } /${ pkg } ` } ]
28- ]
39+ const metrics = [ ]
40+ const prefix = subscriberType === true
41+ ? `${ SUBSCRIBER_USED } /${ pkg } `
42+ : `${ ON_REQUIRE } /${ pkg } `
2943
44+ metrics . push ( [ { name : prefix } ] )
3045 if ( version ) {
31- metrics . push ( [ { name : `${ NAMES . FEATURES . INSTRUMENTATION . ON_REQUIRE } /${ pkg } /Version/${ semver . major ( version ) } ` } ] )
46+ const major = semver . major ( version )
47+ const suffix = subscriberType === true
48+ ? `/${ major } `
49+ : `/Version/${ major } `
50+ metrics . push ( [ { name : `${ prefix } ${ suffix } ` } ] )
3251 }
3352
3453 assertMetrics ( agent . metrics , metrics , false , false , { assert } )
0 commit comments