feat(smartenv): add Bun and Deno OS detection support and update test runtime compatibility
This commit is contained in:
@@ -0,0 +1,58 @@
|
||||
import { tap, expect } from '@git.zone/tstest/tapbundle';
|
||||
import * as smartenv from '../ts/index.js';
|
||||
|
||||
let testEnv: smartenv.Smartenv;
|
||||
|
||||
tap.test('should create smartenv instance', async () => {
|
||||
testEnv = new smartenv.Smartenv();
|
||||
});
|
||||
|
||||
tap.test('should detect browser runtime correctly', async () => {
|
||||
expect(testEnv.runtimeEnv).toEqual('browser');
|
||||
expect(testEnv.isBrowser).toBeTrue();
|
||||
expect(testEnv.isNode).toBeFalse();
|
||||
expect(testEnv.isDeno).toBeFalse();
|
||||
expect(testEnv.isBun).toBeFalse();
|
||||
console.log('Browser runtime detected correctly');
|
||||
});
|
||||
|
||||
tap.test('should get user agent', async () => {
|
||||
const userAgent = testEnv.userAgent;
|
||||
expect(userAgent).not.toEqual('undefined');
|
||||
expect(typeof userAgent).toEqual('string');
|
||||
console.log('User agent: ' + userAgent);
|
||||
});
|
||||
|
||||
tap.test('should print environment', async () => {
|
||||
testEnv.printEnv();
|
||||
});
|
||||
|
||||
tap.test('should not get server runtime versions', async () => {
|
||||
expect(testEnv.nodeVersion).toEqual('undefined');
|
||||
expect(testEnv.denoVersion).toEqual('undefined');
|
||||
expect(testEnv.bunVersion).toEqual('undefined');
|
||||
console.log('Server runtime versions correctly return undefined in browser');
|
||||
});
|
||||
|
||||
tap.test('should not load server modules', async () => {
|
||||
const result = await testEnv.getSafeModuleFor('server', 'path');
|
||||
expect(result).toBeUndefined();
|
||||
console.log('Correctly rejected server module in browser');
|
||||
});
|
||||
|
||||
tap.test('should not detect as CI', async () => {
|
||||
expect(testEnv.isCI).toBeFalse();
|
||||
console.log('CI detection correctly false in browser');
|
||||
});
|
||||
|
||||
tap.test('OS detection should return false in browser', async () => {
|
||||
const resultMac = await testEnv.isMacAsync();
|
||||
const resultLinux = await testEnv.isLinuxAsync();
|
||||
const resultWindows = await testEnv.isWindowsAsync();
|
||||
expect(resultMac).toBeFalse();
|
||||
expect(resultLinux).toBeFalse();
|
||||
expect(resultWindows).toBeFalse();
|
||||
console.log('OS detection correctly returns false in browser');
|
||||
});
|
||||
|
||||
export default tap.start();
|
||||
Reference in New Issue
Block a user