const path = require('path');

// This is required since we don't want to store snapshots inside the dist folder
module.exports = {
	resolveSnapshotPath: (testPath, snapshotExtension) => {
		const srcPath = testPath
			.replace(/dist[/\\]src[/\\]/, 'src/')
			.replace(/\.js$/, '');

		const snapshotPath = path.join(
			path.dirname(srcPath),
			'__snapshots__',
			path.basename(srcPath) + snapshotExtension,
		);

		return snapshotPath;
	},

	resolveTestPath: (snapshotFilePath, snapshotExtension) => {
		const snapshotName = path.basename(snapshotFilePath).replace(snapshotExtension, '');

		const srcDir = (path.dirname(path.dirname(snapshotFilePath))).replace('__snapshots__', '');

		const testPath = path.join(
			srcDir.replace(/src/, 'dist/src'),
			`${snapshotName}.js`,
		);
		return testPath;
	},

	// Normalize to prevent assertion failures on Windows:
	testPathForConsistencyCheck: path.normalize('/dist/src/example.test.js'),
};
