var acorn = require( 'acorn' );

var modules = {
	'main': 'import foo from \'foo\';\nfoo();',

	// the code points to './bar' but the AST points to './baz', so we
	// can check the AST is being used
	'foo': {
		code: 'import bar from \'bar\';\nexport default function foo () {\n\tconsole.log( bar );\n}',
		ast: acorn.parse( 'import bar from \'baz\';\nexport default function foo () {\n\tconsole.log( bar );\n}', {
			ecmaVersion: 6,
			sourceType: 'module'
		})
	},

	'baz': 'export default 42;'
};

module.exports = {
	description: 'uses supplied AST',
	options: {
		plugins: [{
			resolveId: function ( importee, importer ) {
				if ( !importer ) return 'main';
				return importee;
			},
			load: function ( id ) {
				if ( id === 'bar' ) {
					throw new Error( 'loaded incorrect module' );
				}

				return modules[ id ];
			}
		}]
	}
};