Skip to content

Commit 9a1d2ff

Browse files
committed
add more coverage
1 parent 316ba86 commit 9a1d2ff

2 files changed

Lines changed: 44 additions & 15 deletions

File tree

packages/opentelemetry-resources/src/default-service-name.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,3 +34,8 @@ export function defaultServiceName(): string {
3434
}
3535
return serviceName;
3636
}
37+
38+
/** @internal For testing purposes only */
39+
export function _clearDefaultServiceNameCache(): void {
40+
serviceName = undefined;
41+
}

packages/opentelemetry-resources/test/default-service-name.test.ts

Lines changed: 39 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -15,32 +15,56 @@
1515
*/
1616

1717
import * as assert from 'assert';
18-
import { defaultServiceName } from '../src/default-service-name';
18+
import {
19+
_clearDefaultServiceNameCache,
20+
defaultServiceName,
21+
} from '../src/default-service-name';
1922

20-
const isNode = typeof process === 'object' && typeof process.argv0 === 'string';
23+
// node tests must be skipped in browser and webworker envs
24+
const isNode = typeof global.process === 'object';
2125

2226
describe('defaultServiceName', () => {
27+
const originalProcess = global.process;
28+
29+
beforeEach(() => _clearDefaultServiceNameCache());
30+
afterEach(() => {
31+
global.process = originalProcess;
32+
});
33+
2334
it('returns unknown_service prefix', () => {
2435
const serviceName = defaultServiceName();
2536
assert.ok(serviceName.startsWith('unknown_service'));
2637
});
2738

28-
if (isNode) {
29-
it('includes process.argv0 in Node.js', () => {
30-
const serviceName = defaultServiceName();
31-
assert.ok(serviceName.startsWith('unknown_service:'));
32-
assert.ok(serviceName.length > 'unknown_service:'.length);
33-
});
34-
} else {
35-
it('returns plain unknown_service in browser', () => {
36-
const serviceName = defaultServiceName();
37-
assert.strictEqual(serviceName, 'unknown_service');
38-
});
39-
}
40-
4139
it('returns consistent value on multiple calls', () => {
4240
const serviceName1 = defaultServiceName();
4341
const serviceName2 = defaultServiceName();
4442
assert.strictEqual(serviceName1, serviceName2);
4543
});
44+
45+
(isNode ? it : it.skip)('includes process.argv0 in Node.js', () => {
46+
const serviceName = defaultServiceName();
47+
assert.ok(serviceName.startsWith('unknown_service:'));
48+
assert.ok(serviceName.length > 'unknown_service:'.length);
49+
});
50+
51+
(isNode ? it : it.skip)(
52+
'returns plain unknown_service when process is not an object',
53+
() => {
54+
// @ts-expect-error redefining process for testing
55+
global.process = undefined;
56+
const serviceName = defaultServiceName();
57+
assert.strictEqual(serviceName, 'unknown_service');
58+
}
59+
);
60+
61+
(isNode ? it : it.skip)(
62+
'returns plain unknown_service when argv0 is empty',
63+
() => {
64+
// @ts-expect-error redefining process for testing
65+
global.process = { argv0: '' };
66+
const serviceName = defaultServiceName();
67+
assert.strictEqual(serviceName, 'unknown_service');
68+
}
69+
);
4670
});

0 commit comments

Comments
 (0)