@wordpress/env
Version:
A zero-config, self contained local WordPress environment for development and testing.
57 lines (43 loc) • 1.29 kB
JavaScript
;
/**
* External dependencies
*/
const { stat } = require( 'fs' ).promises;
const { homedir } = require( 'os' );
/**
* Internal dependencies
*/
const getCacheDirectory = require( '../get-cache-directory' );
jest.mock( 'fs', () => ( {
promises: {
stat: jest.fn(),
},
} ) );
jest.mock( 'os', () => ( {
homedir: jest.fn(),
} ) );
describe( 'getCacheDirectory', () => {
afterEach( () => {
delete process.env.WP_ENV_HOME;
} );
it( 'uses WP_ENV_HOME for cache directory when set', async () => {
process.env.WP_ENV_HOME = '/test';
const parsed = await getCacheDirectory();
expect( homedir ).not.toHaveBeenCalled();
expect( parsed ).toEqual( '/test' );
} );
it( 'uses hidden home directory for cache', async () => {
stat.mockRejectedValue( false );
homedir.mockReturnValue( '/home/test' );
const parsed = await getCacheDirectory();
expect( homedir ).toHaveBeenCalled();
expect( parsed ).toEqual( '/home/test/.wp-env' );
} );
it( 'uses non-hidden cache directory when using Snap-installed Docker', async () => {
stat.mockResolvedValue( true );
homedir.mockReturnValue( '/home/test' );
const parsed = await getCacheDirectory();
expect( homedir ).toHaveBeenCalled();
expect( parsed ).toEqual( '/home/test/wp-env' );
} );
} );