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'); }); tap.start();