82 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			82 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| // Imports
 | |
| import {assertNotMissingOrEmpty, getEnvVar} from '../../lib/common/utils';
 | |
| 
 | |
| // Tests
 | |
| describe('utils', () => {
 | |
| 
 | |
|   describe('assertNotMissingOrEmpty()', () => {
 | |
| 
 | |
|     it('should throw if passed an empty value', () => {
 | |
|       expect(() => assertNotMissingOrEmpty('foo', undefined)).
 | |
|         toThrowError('Missing or empty required parameter \'foo\'!');
 | |
|       expect(() => assertNotMissingOrEmpty('bar', null)).toThrowError('Missing or empty required parameter \'bar\'!');
 | |
|       expect(() => assertNotMissingOrEmpty('baz', '')).toThrowError('Missing or empty required parameter \'baz\'!');
 | |
|     });
 | |
| 
 | |
| 
 | |
|     it('should not throw if passed a non-empty value', () => {
 | |
|       expect(() => assertNotMissingOrEmpty('foo', ' ')).not.toThrow();
 | |
|       expect(() => assertNotMissingOrEmpty('bar', 'bar')).not.toThrow();
 | |
|       expect(() => assertNotMissingOrEmpty('baz', 'b a z')).not.toThrow();
 | |
|     });
 | |
| 
 | |
|   });
 | |
| 
 | |
| 
 | |
|   describe('getEnvVar()', () => {
 | |
|     const emptyVar = '$$test_utils_getEnvVar_empty$$';
 | |
|     const nonEmptyVar = '$$test_utils_getEnvVar_nonEmpty$$';
 | |
|     const undefinedVar = '$$test_utils_getEnvVar_undefined$$';
 | |
| 
 | |
|     beforeEach(() => {
 | |
|       process.env[emptyVar] = '';
 | |
|       process.env[nonEmptyVar] = 'foo';
 | |
|     });
 | |
|     afterEach(() => {
 | |
|       delete process.env[emptyVar];
 | |
|       delete process.env[nonEmptyVar];
 | |
|     });
 | |
| 
 | |
| 
 | |
|     it('should return an environment variable', () => {
 | |
|       expect(getEnvVar(nonEmptyVar)).toBe('foo');
 | |
|     });
 | |
| 
 | |
| 
 | |
|     it('should exit with an error if the environment variable is not defined', () => {
 | |
|       const consoleErrorSpy = spyOn(console, 'error');
 | |
|       const processExitSpy = spyOn(process, 'exit');
 | |
| 
 | |
|       getEnvVar(undefinedVar);
 | |
| 
 | |
|       expect(consoleErrorSpy).toHaveBeenCalled();
 | |
|       expect(consoleErrorSpy.calls.argsFor(0)[0]).toContain(undefinedVar);
 | |
|       expect(processExitSpy).toHaveBeenCalledWith(1);
 | |
|     });
 | |
| 
 | |
| 
 | |
|     it('should exit with an error if the environment variable is empty', () => {
 | |
|       const consoleErrorSpy = spyOn(console, 'error');
 | |
|       const processExitSpy = spyOn(process, 'exit');
 | |
| 
 | |
|       getEnvVar(emptyVar);
 | |
| 
 | |
|       expect(consoleErrorSpy).toHaveBeenCalled();
 | |
|       expect(consoleErrorSpy.calls.argsFor(0)[0]).toContain(emptyVar);
 | |
|       expect(processExitSpy).toHaveBeenCalledWith(1);
 | |
|     });
 | |
| 
 | |
| 
 | |
|     it('should return an empty string if an undefined variable is optional', () => {
 | |
|       expect(getEnvVar(undefinedVar, true)).toBe('');
 | |
|     });
 | |
| 
 | |
| 
 | |
|     it('should return an empty string if an empty variable is optional', () => {
 | |
|       expect(getEnvVar(emptyVar, true)).toBe('');
 | |
|     });
 | |
| 
 | |
|   });
 | |
| 
 | |
| });
 |