Skip to content

Commit 6b3e05c

Browse files
authored
Share test utilities (#843)
Split test fixtures into `@simple-git/test-utils`, depend on the package directly in integration tests and share through unit tests fixtures Remove outer fixtures, reuse `@simple-git/test-utils` in unit test fixtures
1 parent a975980 commit 6b3e05c

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

51 files changed

+196
-166
lines changed

Diff for: .changeset/heavy-pumpkins-work.md

+6

Diff for: packages/test-utils/index.ts

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
export * from './src/create-test-context';
2+
export * from './src/expectations';
3+
export * from './src/instance';
4+
export * from './src/like';
5+
export * from './src/wait';
6+
7+
export * from './src/setup/setup-conflicted';
8+
export * from './src/setup/setup-files';
9+
export * from './src/setup/setup-init';

Diff for: packages/test-utils/package.json

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{
2+
"name": "@simple-git/test-utils",
3+
"version": "0.0.0",
4+
"private": true,
5+
"peerDependencies": {
6+
"simple-git": "^3.12.0"
7+
}
8+
}

Diff for: simple-git/test/__fixtures__/create-test-context.ts renamed to packages/test-utils/src/create-test-context.ts

+2-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
import { join } from 'path';
22
import { existsSync, mkdir, mkdtemp, realpathSync, writeFile, WriteFileOptions } from 'fs';
3-
import { SimpleGit } from '../../typings';
4-
import { newSimpleGit } from './instance';
3+
import { simpleGit, SimpleGit } from 'simple-git';
54

65
export interface SimpleGitTestContext {
76
/** Creates a directory under the repo root at the given path(s) */
@@ -85,7 +84,7 @@ export async function createTestContext(): Promise<SimpleGitTestContext> {
8584
return realpathSync(context.root);
8685
},
8786
get git() {
88-
return newSimpleGit(root);
87+
return simpleGit(root);
8988
},
9089
};
9190

Diff for: simple-git/test/__fixtures__/expectations.ts renamed to packages/test-utils/src/expectations.ts

+2-7
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
import { GitError } from '../../src/lib/errors/git-error';
2-
import { GitResponseError } from '../../src/lib/errors/git-response-error';
1+
import { GitError, GitResponseError } from "simple-git";
32

43
/**
54
* Convenience for asserting the type and message of a `GitError`
@@ -15,12 +14,8 @@ import { GitResponseError } from '../../src/lib/errors/git-response-error';
1514
export function assertGitError(
1615
errorInstance: Error | unknown,
1716
message: string | RegExp,
18-
errorConstructor?: any
17+
errorConstructor: any = GitError
1918
) {
20-
if (!errorConstructor) {
21-
errorConstructor = GitError;
22-
}
23-
2419
expect(errorInstance).toBeInstanceOf(errorConstructor);
2520
expect(errorInstance).toHaveProperty('message', expect.stringMatching(message));
2621
}

Diff for: packages/test-utils/src/instance.ts

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
import { simpleGit as newSimpleGit } from 'simple-git';
2+
3+
export { newSimpleGit };
File renamed without changes.

Diff for: simple-git/test/__fixtures__/setup-conflicted.ts renamed to packages/test-utils/src/setup/setup-conflicted.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { SimpleGitTestContext } from './create-test-context';
1+
import { SimpleGitTestContext } from '../create-test-context';
22

33
export const FIRST_BRANCH = 'first';
44
export const SECOND_BRANCH = 'second';

Diff for: simple-git/test/__fixtures__/setup-files.ts renamed to packages/test-utils/src/setup/setup-files.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { SimpleGitTestContext } from './create-test-context';
1+
import { SimpleGitTestContext } from '../create-test-context';
22

33
export async function setUpFilesAdded(
44
{ git, files }: SimpleGitTestContext,

Diff for: simple-git/test/__fixtures__/setup-init.ts renamed to packages/test-utils/src/setup/setup-init.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
import { SimpleGit } from '../../typings';
2-
import { SimpleGitTestContext } from './create-test-context';
1+
import { SimpleGit } from 'simple-git';
2+
import { SimpleGitTestContext } from '../create-test-context';
33

44
export const GIT_USER_NAME = 'Simple Git Tests';
55
export const GIT_USER_EMAIL = '[email protected]';
File renamed without changes.

Diff for: simple-git/package.json

+1
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
"devDependencies": {
2222
"@kwsites/promise-result": "^1.1.0",
2323
"@simple-git/babel-config": "^1.0.0",
24+
"@simple-git/test-utils": "^0.0.0",
2425
"@types/debug": "^4.1.5",
2526
"@types/jest": "^27.0.3",
2627
"@types/node": "^14.14.10",

Diff for: simple-git/test/__fixtures__/index.ts

-9
This file was deleted.

Diff for: simple-git/test/__fixtures__/instance.ts

-6
This file was deleted.

Diff for: simple-git/test/integration/add.spec.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import {
44
newSimpleGit,
55
setUpInit,
66
SimpleGitTestContext,
7-
} from '../__fixtures__';
7+
} from '@simple-git/test-utils';
88

99
describe('add', () => {
1010
let context: SimpleGitTestContext;

Diff for: simple-git/test/integration/bad-initial-path.spec.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import {
44
like,
55
newSimpleGit,
66
SimpleGitTestContext,
7-
} from '../__fixtures__';
7+
} from '@simple-git/test-utils';
88

99
import { GitConstructError } from '../..';
1010

Diff for: simple-git/test/integration/branches.spec.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import {
66
newSimpleGit,
77
setUpInit,
88
SimpleGitTestContext,
9-
} from '../__fixtures__';
9+
} from '@simple-git/test-utils';
1010

1111
describe('branches', () => {
1212
let context: SimpleGitTestContext;

Diff for: simple-git/test/integration/broken-chains.spec.ts

+3-8
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,6 @@
1-
import { isPromiseFailure, promiseError, promiseResult } from '@kwsites/promise-result';
2-
import {
3-
assertGitError,
4-
createTestContext,
5-
newSimpleGit,
6-
SimpleGitTestContext,
7-
} from '../__fixtures__';
8-
import { SimpleGit } from '../../typings';
1+
import { isPromiseFailure, promiseError, promiseResult } from "@kwsites/promise-result";
2+
import { assertGitError, createTestContext, newSimpleGit, SimpleGitTestContext } from "@simple-git/test-utils";
3+
import { SimpleGit } from "../../typings";
94

105
/*
116
The broken chains test assures the behaviour of both standard and Promise wrapped versions

Diff for: simple-git/test/integration/change-directory.spec.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import {
55
newSimpleGit,
66
SimpleGitTestContext,
77
wait,
8-
} from '../__fixtures__';
8+
} from '@simple-git/test-utils';
99
import { SimpleGit } from '../../typings';
1010

1111
describe('change-directory', () => {

Diff for: simple-git/test/integration/check-is-repo.spec.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import {
33
createTestContext,
44
newSimpleGit,
55
SimpleGitTestContext,
6-
} from '../__fixtures__';
6+
} from '@simple-git/test-utils';
77

88
import { CheckRepoActions } from '../../src/lib/tasks/check-is-repo';
99

Diff for: simple-git/test/integration/checkout.spec.ts

+6-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,9 @@
1-
import { createTestContext, newSimpleGit, setUpInit, SimpleGitTestContext } from '../__fixtures__';
1+
import {
2+
createTestContext,
3+
newSimpleGit,
4+
setUpInit,
5+
SimpleGitTestContext,
6+
} from '@simple-git/test-utils';
27
import { SimpleGit } from '../../typings';
38
import { promiseError } from '@kwsites/promise-result';
49

Diff for: simple-git/test/integration/clean.spec.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import {
77
setUpFilesAdded,
88
setUpInit,
99
SimpleGitTestContext,
10-
} from '../__fixtures__';
10+
} from '@simple-git/test-utils';
1111

1212
import { CleanOptions } from '../../src/lib/tasks/clean';
1313

Diff for: simple-git/test/integration/commit.spec.ts

+6-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,9 @@
1-
import { createTestContext, newSimpleGit, setUpInit, SimpleGitTestContext } from '../__fixtures__';
1+
import {
2+
createTestContext,
3+
newSimpleGit,
4+
setUpInit,
5+
SimpleGitTestContext,
6+
} from '@simple-git/test-utils';
27

38
describe('commit', () => {
49
let context: SimpleGitTestContext;

Diff for: simple-git/test/integration/completion-plugin.spec.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { promiseError } from '@kwsites/promise-result';
2-
import { createTestContext, newSimpleGit, SimpleGitTestContext } from '../__fixtures__';
2+
import { createTestContext, newSimpleGit, SimpleGitTestContext } from '@simple-git/test-utils';
33

44
describe('progress-monitor', () => {
55
let context: SimpleGitTestContext;

Diff for: simple-git/test/integration/concurrent-commands.spec.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import {
44
setUpFilesAdded,
55
setUpInit,
66
SimpleGitTestContext,
7-
} from '../__fixtures__';
7+
} from '@simple-git/test-utils';
88

99
describe('concurrent commands', () => {
1010
let contexts: { first: SimpleGitTestContext; second: SimpleGitTestContext };

Diff for: simple-git/test/integration/config.spec.ts

+6-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,9 @@
1-
import { createTestContext, newSimpleGit, setUpInit, SimpleGitTestContext } from '../__fixtures__';
1+
import {
2+
createTestContext,
3+
newSimpleGit,
4+
setUpInit,
5+
SimpleGitTestContext,
6+
} from '@simple-git/test-utils';
27
import { GitConfigScope } from '../..';
38
import { SimpleGit } from '../../typings';
49

Diff for: simple-git/test/integration/diff.spec.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import {
55
setUpFilesAdded,
66
setUpInit,
77
SimpleGitTestContext,
8-
} from '../__fixtures__';
8+
} from '@simple-git/test-utils';
99

1010
describe('diff', function () {
1111
const nameWithTrailingSpaces = 'name-with-trailing-spaces ';

Diff for: simple-git/test/integration/exec.spec.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { createTestContext, newSimpleGit, SimpleGitTestContext } from '../__fixtures__';
1+
import { createTestContext, newSimpleGit, SimpleGitTestContext } from '@simple-git/test-utils';
22

33
describe('exec', () => {
44
let context: SimpleGitTestContext;

Diff for: simple-git/test/integration/fetch.spec.ts

+7-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,9 @@
1-
import { createTestContext, newSimpleGit, setUpInit, SimpleGitTestContext } from '../__fixtures__';
1+
import {
2+
createTestContext,
3+
newSimpleGit,
4+
setUpInit,
5+
SimpleGitTestContext,
6+
} from '@simple-git/test-utils';
27

38
describe('fetch', () => {
49
let context: SimpleGitTestContext;
@@ -70,6 +75,7 @@ describe('fetch', () => {
7075
await git.raw('checkout', '-b', 'bravo');
7176
await git.raw('checkout', '-b', 'charlie');
7277
}
78+
7379
/**
7480
* Configure the remote with changes to be retrieved when using fetch on the local
7581
*/

Diff for: simple-git/test/integration/grep.spec.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { createTestContext, newSimpleGit, SimpleGitTestContext } from '../__fixtures__';
1+
import { createTestContext, newSimpleGit, SimpleGitTestContext } from '@simple-git/test-utils';
22
import { grepQueryBuilder } from '../..';
33

44
describe('grep', () => {

Diff for: simple-git/test/integration/log.spec.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import {
88
setUpFilesAdded,
99
setUpInit,
1010
SimpleGitTestContext,
11-
} from '../__fixtures__';
11+
} from '@simple-git/test-utils';
1212
import type { DiffResultTextFile } from '../../typings';
1313

1414
describe('log', () => {

Diff for: simple-git/test/integration/merge-integration.spec.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import {
1111
setUpConflicted,
1212
setUpInit,
1313
SimpleGitTestContext,
14-
} from '../__fixtures__';
14+
} from '@simple-git/test-utils';
1515

1616
describe('merge', () => {
1717
let context: SimpleGitTestContext;

Diff for: simple-git/test/integration/progress-plugin.spec.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { createTestContext, newSimpleGit, SimpleGitTestContext } from '../__fixtures__';
1+
import { createTestContext, newSimpleGit, SimpleGitTestContext } from '@simple-git/test-utils';
22
import { SimpleGitOptions } from '../../src/lib/types';
33

44
describe('progress-monitor', () => {

Diff for: simple-git/test/integration/promise-from-root.spec.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { createTestContext, newSimpleGit, SimpleGitTestContext } from '../__fixtures__';
1+
import { createTestContext, newSimpleGit, SimpleGitTestContext } from '@simple-git/test-utils';
22

33
describe('promises-from-root', () => {
44
let context: SimpleGitTestContext;

Diff for: simple-git/test/integration/promise.spec.ts

+6-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,9 @@
1-
import { createTestContext, newSimpleGit, setUpInit, SimpleGitTestContext } from '../__fixtures__';
1+
import {
2+
createTestContext,
3+
newSimpleGit,
4+
setUpInit,
5+
SimpleGitTestContext,
6+
} from '@simple-git/test-utils';
27

38
import { InitSummary } from '../../src/lib/responses/InitSummary';
49
import { StatusSummary } from '../../src/lib/responses/StatusSummary';

Diff for: simple-git/test/integration/pull-fails-ff.spec.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import {
66
newSimpleGit,
77
setUpInit,
88
SimpleGitTestContext,
9-
} from '../__fixtures__';
9+
} from '@simple-git/test-utils';
1010

1111
describe('pull --ff-only', () => {
1212
let context: SimpleGitTestContext;

Diff for: simple-git/test/integration/remote.spec.ts

+6-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,9 @@
1-
import { createTestContext, newSimpleGit, setUpInit, SimpleGitTestContext } from '../__fixtures__';
1+
import {
2+
createTestContext,
3+
newSimpleGit,
4+
setUpInit,
5+
SimpleGitTestContext,
6+
} from '@simple-git/test-utils';
27

38
describe('remote', () => {
49
let context: SimpleGitTestContext;

Diff for: simple-git/test/integration/reset.spec.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import {
66
setUpFilesAdded,
77
setUpInit,
88
SimpleGitTestContext,
9-
} from '../__fixtures__';
9+
} from '@simple-git/test-utils';
1010

1111
import { ResetMode } from '../../src/lib/tasks/reset';
1212

Diff for: simple-git/test/integration/rev-parse.spec.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import {
44
setUpFilesAdded,
55
setUpInit,
66
SimpleGitTestContext,
7-
} from '../__fixtures__';
7+
} from '@simple-git/test-utils';
88

99
describe('rev-parse', () => {
1010
let context: SimpleGitTestContext;

Diff for: simple-git/test/integration/status.spec.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import {
55
setUpFilesAdded,
66
setUpInit,
77
SimpleGitTestContext,
8-
} from '../__fixtures__';
8+
} from '@simple-git/test-utils';
99

1010
describe('status', () => {
1111
let context: SimpleGitTestContext;

Diff for: simple-git/test/integration/tag.spec.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import {
55
setUpFilesAdded,
66
setUpInit,
77
SimpleGitTestContext,
8-
} from '../__fixtures__';
8+
} from '@simple-git/test-utils';
99

1010
describe('tag', () => {
1111
let context: SimpleGitTestContext;

Diff for: simple-git/test/integration/timeout-plugin.spec.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import {
44
createTestContext,
55
newSimpleGit,
66
SimpleGitTestContext,
7-
} from '../__fixtures__';
7+
} from '@simple-git/test-utils';
88

99
import { GitPluginError } from '../..';
1010

Diff for: simple-git/test/unit/__fixtures__/child-processes.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { MockChildProcess, mockChildProcessModule } from '../__mocks__/mock-child-process';
2-
import { wait } from '../../__fixtures__';
2+
import { wait } from '@simple-git/test-utils';
33

44
const EXIT_CODE_SUCCESS = 0;
55
const EXIT_CODE_ERROR = 1;

Diff for: simple-git/test/unit/__fixtures__/index.ts

+1-4
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,4 @@ export * from './responses/merge';
1111
export * from './responses/remote-messages';
1212
export * from './responses/status';
1313

14-
export * from '../../__fixtures__/expectations';
15-
export * from '../../__fixtures__/instance';
16-
export * from '../../__fixtures__/like';
17-
export * from '../../__fixtures__/wait';
14+
export * from '@simple-git/test-utils';

0 commit comments

Comments
 (0)