untracked and tracked files need to be treated differently
This commit is contained in:
parent
359edf9c0f
commit
ab05bbf9c8
|
|
@ -105,11 +105,12 @@ 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 untrackedFiles = gitFileList(`ls-files --others --exclude-standard`).map(file => path.join(process.cwd(), file));
|
||||
|
||||
const filesWithChanges = [...untrackedFiles, ...trackedFilesWithChanges].map(file => path.join(gitRoot, file));
|
||||
const [gitRoot] = gitFileList('rev-parse --show-toplevel');
|
||||
const trackedFilesWithChanges = gitFileList(`diff ${baseCommit} --name-only`).map(file => path.join(gitRoot, file));
|
||||
|
||||
const filesWithChanges = [...untrackedFiles, ...trackedFilesWithChanges];
|
||||
return [
|
||||
...filesWithChanges,
|
||||
...affectedTestFiles(filesWithChanges),
|
||||
|
|
|
|||
|
|
@ -241,26 +241,45 @@ test('should suppport component tests', async ({ runInlineTest, setupRepository,
|
|||
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();
|
||||
test.describe('should work the same if being called in subdirectory', () => {
|
||||
test('tracked file', 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); });
|
||||
`
|
||||
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');
|
||||
});
|
||||
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' });
|
||||
test('untracked file', async ({ runInlineTest, setupRepository }) => {
|
||||
await setupRepository();
|
||||
|
||||
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');
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
expect(result.exitCode).toBe(1);
|
||||
expect(result.failed).toBe(1);
|
||||
expect(result.output).toContain('c.spec.ts');
|
||||
});
|
||||
Loading…
Reference in a new issue