59 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
		
		
			
		
	
	
			59 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| 
								 | 
							
								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();
							 |