| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- import { rm } from 'node:fs/promises';
- import { join } from 'node:path';
- import { describe, expect, it } from 'vitest';
- import { compile } from '../utils/compiler.js';
- import { debugLogger, noopLogger } from '../utils/logger.js';
- describe('detecting plugins using tsconfig path aliases', () => {
- it('should detect plugins using tsconfig path aliases', { timeout: 60_000 }, async () => {
- const tempDir = join(__dirname, './__temp/path-alias');
- await rm(tempDir, { recursive: true, force: true });
- const result = await compile({
- outputPath: tempDir,
- vendureConfigPath: join(__dirname, 'fixtures-path-alias', 'vendure-config.ts'),
- logger: process.env.LOG ? debugLogger : noopLogger,
- pathAdapter: {
- transformTsConfigPathMappings: ({ phase, patterns }) => {
- if (phase === 'loading') {
- return patterns.map(pattern => {
- return pattern.replace(/\/fixtures-path-alias/, '').replace(/.ts$/, '.js');
- });
- } else {
- return patterns;
- }
- },
- },
- });
- const plugins = result.pluginInfo.sort((a, b) => a.name.localeCompare(b.name));
- expect(plugins).toHaveLength(3);
- expect(plugins[0].name).toBe('JsAliasedPlugin');
- expect(plugins[0].dashboardEntryPath).toBe('./dashboard/index.tsx');
- expect(plugins[0].sourcePluginPath).toBe(
- join(__dirname, 'fixtures-path-alias', 'js-aliased', 'src', 'js-aliased.plugin.ts'),
- );
- expect(plugins[0].pluginPath).toBe(join(tempDir, 'js-aliased', 'src', 'js-aliased.plugin.js'));
- expect(plugins[1].name).toBe('StarAliasedPlugin');
- expect(plugins[1].dashboardEntryPath).toBe('./dashboard/index.tsx');
- expect(plugins[1].sourcePluginPath).toBe(
- join(__dirname, 'fixtures-path-alias', 'star-aliased', 'src', 'star-aliased.plugin.ts'),
- );
- expect(plugins[1].pluginPath).toBe(join(tempDir, 'star-aliased', 'src', 'star-aliased.plugin.js'));
- expect(plugins[2].name).toBe('TsAliasedPlugin');
- expect(plugins[2].dashboardEntryPath).toBe('./dashboard/index.tsx');
- expect(plugins[2].sourcePluginPath).toBe(
- join(__dirname, 'fixtures-path-alias', 'ts-aliased', 'src', 'ts-aliased.plugin.ts'),
- );
- expect(plugins[2].pluginPath).toBe(join(tempDir, 'ts-aliased', 'src', 'ts-aliased.plugin.js'));
- });
- });
|