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