treat edge case of calling it in subdirectory
This commit is contained in:
parent
0f38048ef2
commit
359edf9c0f
|
|
@ -87,7 +87,7 @@ export async function detectChangedFiles(baseCommit: string): Promise<string[]>
|
|||
return childProcess.execSync(
|
||||
`git ${command}`,
|
||||
{ encoding: 'utf-8', stdio: 'pipe' }
|
||||
).split('\n').filter(Boolean).map(file => path.resolve(file));
|
||||
).split('\n').filter(Boolean);
|
||||
} catch (_error) {
|
||||
const error = _error as childProcess.SpawnSyncReturns<string>;
|
||||
throw new Error([
|
||||
|
|
@ -107,8 +107,9 @@ export async function detectChangedFiles(baseCommit: string): Promise<string[]>
|
|||
|
||||
const untrackedFiles = gitFileList(`ls-files --others --exclude-standard`);
|
||||
const trackedFilesWithChanges = gitFileList(`diff ${baseCommit} --name-only`);
|
||||
const [gitRoot] = gitFileList('rev-parse --show-toplevel');
|
||||
|
||||
const filesWithChanges = [...untrackedFiles, ...trackedFilesWithChanges];
|
||||
const filesWithChanges = [...untrackedFiles, ...trackedFilesWithChanges].map(file => path.join(gitRoot, file));
|
||||
return [
|
||||
...filesWithChanges,
|
||||
...affectedTestFiles(filesWithChanges),
|
||||
|
|
|
|||
|
|
@ -240,3 +240,27 @@ test('should suppport component tests', async ({ runInlineTest, setupRepository,
|
|||
expect(result2.output).toContain('button2.test.tsx');
|
||||
expect(result2.output).not.toContain('button.test.tsx');
|
||||
});
|
||||
|
||||
test('should work the same if being called in subdirectory', async ({ runInlineTest, setupRepository, writeFiles }) => {
|
||||
const git = await setupRepository();
|
||||
|
||||
await writeFiles({
|
||||
'tests/c.spec.ts': `
|
||||
import { test, expect } from '@playwright/test';
|
||||
test('fails', () => { expect(1).toBe(2); });
|
||||
`
|
||||
});
|
||||
git('add .');
|
||||
git('commit -a -m "add test"');
|
||||
|
||||
const result = await runInlineTest({
|
||||
'tests/c.spec.ts': `
|
||||
import { test, expect } from '@playwright/test';
|
||||
test('fails', () => { expect(1).toBe(3); });
|
||||
`
|
||||
}, { 'only-changed': true }, {}, { cwd: 'tests' });
|
||||
|
||||
expect(result.exitCode).toBe(1);
|
||||
expect(result.failed).toBe(1);
|
||||
expect(result.output).toContain('c.spec.ts');
|
||||
});
|
||||
Loading…
Reference in a new issue