UNPKG

@wordpress/env

Version:

A zero-config, self contained local WordPress environment for development and testing.

42 lines (35 loc) 1.36 kB
'use strict'; /** * Internal dependencies */ const parseXdebugMode = require( '../parse-xdebug-mode' ); describe( 'parseXdebugMode', () => { it( 'throws an error if the passed value is neither a string nor undefined', () => { const errorMessage = 'is not a mode recognized by Xdebug'; expect( () => parseXdebugMode( true ) ).toThrow( errorMessage ); expect( () => parseXdebugMode( false ) ).toThrow( errorMessage ); expect( () => parseXdebugMode( 1 ) ).toThrow( errorMessage ); } ); it( 'sets the Xdebug mode to "off" if no --xdebug flag is passed', () => { const result = parseXdebugMode( undefined ); expect( result ).toEqual( 'off' ); } ); it( 'sets the Xdebug mode to "debug" if no mode is specified', () => { const result = parseXdebugMode( '' ); expect( result ).toEqual( 'debug' ); } ); it( 'throws an error if a given mode is not recognized, including the invalid mode in the output', () => { const fakeMode = 'fake-mode-123'; expect.assertions( 2 ); // Single mode: expect( () => parseXdebugMode( fakeMode ) ).toThrow( fakeMode ); // Many modes: expect( () => parseXdebugMode( `debug,profile,${ fakeMode }` ) ).toThrow( fakeMode ); } ); it( 'returns all modes passed', () => { const result = parseXdebugMode( 'debug,profile,trace' ); expect( result ).toEqual( 'debug,profile,trace' ); } ); } );