From 6b3e05c99a42c75aa9104df151c5386b7b5e2e87 Mon Sep 17 00:00:00 2001 From: Steve King Date: Sat, 13 Aug 2022 10:45:44 +0100 Subject: [PATCH] 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 --- .changeset/heavy-pumpkins-work.md | 6 + packages/test-utils/index.ts | 9 + packages/test-utils/package.json | 8 + .../test-utils/src}/create-test-context.ts | 5 +- .../test-utils/src}/expectations.ts | 9 +- packages/test-utils/src/instance.ts | 3 + .../test-utils/src}/like.ts | 0 .../test-utils/src/setup}/setup-conflicted.ts | 2 +- .../test-utils/src/setup}/setup-files.ts | 2 +- .../test-utils/src/setup}/setup-init.ts | 4 +- .../test-utils/src}/wait.ts | 0 simple-git/package.json | 1 + simple-git/test/__fixtures__/index.ts | 9 - simple-git/test/__fixtures__/instance.ts | 6 - simple-git/test/integration/add.spec.ts | 2 +- .../test/integration/bad-initial-path.spec.ts | 2 +- simple-git/test/integration/branches.spec.ts | 2 +- .../test/integration/broken-chains.spec.ts | 11 +- .../test/integration/change-directory.spec.ts | 2 +- .../test/integration/check-is-repo.spec.ts | 2 +- simple-git/test/integration/checkout.spec.ts | 7 +- simple-git/test/integration/clean.spec.ts | 2 +- simple-git/test/integration/commit.spec.ts | 7 +- .../integration/completion-plugin.spec.ts | 2 +- .../integration/concurrent-commands.spec.ts | 2 +- simple-git/test/integration/config.spec.ts | 7 +- simple-git/test/integration/diff.spec.ts | 2 +- simple-git/test/integration/exec.spec.ts | 2 +- simple-git/test/integration/fetch.spec.ts | 8 +- simple-git/test/integration/grep.spec.ts | 2 +- simple-git/test/integration/log.spec.ts | 2 +- .../integration/merge-integration.spec.ts | 2 +- .../test/integration/progress-plugin.spec.ts | 2 +- .../integration/promise-from-root.spec.ts | 2 +- simple-git/test/integration/promise.spec.ts | 7 +- .../test/integration/pull-fails-ff.spec.ts | 2 +- simple-git/test/integration/remote.spec.ts | 7 +- simple-git/test/integration/reset.spec.ts | 2 +- simple-git/test/integration/rev-parse.spec.ts | 2 +- simple-git/test/integration/status.spec.ts | 2 +- simple-git/test/integration/tag.spec.ts | 2 +- .../test/integration/timeout-plugin.spec.ts | 2 +- .../test/unit/__fixtures__/child-processes.ts | 2 +- simple-git/test/unit/__fixtures__/index.ts | 5 +- .../test/unit/__mocks__/mock-child-process.ts | 3 + simple-git/test/unit/apply-patch.spec.ts | 154 +++++++++--------- simple-git/test/unit/clean.spec.ts | 22 +-- .../unit/completion-detection-plugin.spec.ts | 3 +- simple-git/test/unit/grep.spec.ts | 8 +- simple-git/test/unit/logging.spec.ts | 4 +- simple-git/tsconfig.json | 1 - 51 files changed, 196 insertions(+), 166 deletions(-) create mode 100644 .changeset/heavy-pumpkins-work.md create mode 100644 packages/test-utils/index.ts create mode 100644 packages/test-utils/package.json rename {simple-git/test/__fixtures__ => packages/test-utils/src}/create-test-context.ts (95%) rename {simple-git/test/__fixtures__ => packages/test-utils/src}/expectations.ts (77%) create mode 100644 packages/test-utils/src/instance.ts rename {simple-git/test/__fixtures__ => packages/test-utils/src}/like.ts (100%) rename {simple-git/test/__fixtures__ => packages/test-utils/src/setup}/setup-conflicted.ts (93%) rename {simple-git/test/__fixtures__ => packages/test-utils/src/setup}/setup-files.ts (81%) rename {simple-git/test/__fixtures__ => packages/test-utils/src/setup}/setup-init.ts (81%) rename {simple-git/test/__fixtures__ => packages/test-utils/src}/wait.ts (100%) delete mode 100644 simple-git/test/__fixtures__/index.ts delete mode 100644 simple-git/test/__fixtures__/instance.ts diff --git a/.changeset/heavy-pumpkins-work.md b/.changeset/heavy-pumpkins-work.md new file mode 100644 index 00000000..39f8da66 --- /dev/null +++ b/.changeset/heavy-pumpkins-work.md @@ -0,0 +1,6 @@ +--- +'@simple-git/test-utils': major +'simple-git': patch +--- + +Use shared test utilities bundle in simple-git tests, to enable consistent testing across packages in the future diff --git a/packages/test-utils/index.ts b/packages/test-utils/index.ts new file mode 100644 index 00000000..21f06c2a --- /dev/null +++ b/packages/test-utils/index.ts @@ -0,0 +1,9 @@ +export * from './src/create-test-context'; +export * from './src/expectations'; +export * from './src/instance'; +export * from './src/like'; +export * from './src/wait'; + +export * from './src/setup/setup-conflicted'; +export * from './src/setup/setup-files'; +export * from './src/setup/setup-init'; diff --git a/packages/test-utils/package.json b/packages/test-utils/package.json new file mode 100644 index 00000000..653c1cda --- /dev/null +++ b/packages/test-utils/package.json @@ -0,0 +1,8 @@ +{ + "name": "@simple-git/test-utils", + "version": "0.0.0", + "private": true, + "peerDependencies": { + "simple-git": "^3.12.0" + } +} diff --git a/simple-git/test/__fixtures__/create-test-context.ts b/packages/test-utils/src/create-test-context.ts similarity index 95% rename from simple-git/test/__fixtures__/create-test-context.ts rename to packages/test-utils/src/create-test-context.ts index a1f234e4..8d2ac265 100644 --- a/simple-git/test/__fixtures__/create-test-context.ts +++ b/packages/test-utils/src/create-test-context.ts @@ -1,7 +1,6 @@ import { join } from 'path'; import { existsSync, mkdir, mkdtemp, realpathSync, writeFile, WriteFileOptions } from 'fs'; -import { SimpleGit } from '../../typings'; -import { newSimpleGit } from './instance'; +import { simpleGit, SimpleGit } from 'simple-git'; export interface SimpleGitTestContext { /** Creates a directory under the repo root at the given path(s) */ @@ -85,7 +84,7 @@ export async function createTestContext(): Promise { return realpathSync(context.root); }, get git() { - return newSimpleGit(root); + return simpleGit(root); }, }; diff --git a/simple-git/test/__fixtures__/expectations.ts b/packages/test-utils/src/expectations.ts similarity index 77% rename from simple-git/test/__fixtures__/expectations.ts rename to packages/test-utils/src/expectations.ts index 5e9b2bcc..024fd34b 100644 --- a/simple-git/test/__fixtures__/expectations.ts +++ b/packages/test-utils/src/expectations.ts @@ -1,5 +1,4 @@ -import { GitError } from '../../src/lib/errors/git-error'; -import { GitResponseError } from '../../src/lib/errors/git-response-error'; +import { GitError, GitResponseError } from "simple-git"; /** * Convenience for asserting the type and message of a `GitError` @@ -15,12 +14,8 @@ import { GitResponseError } from '../../src/lib/errors/git-response-error'; export function assertGitError( errorInstance: Error | unknown, message: string | RegExp, - errorConstructor?: any + errorConstructor: any = GitError ) { - if (!errorConstructor) { - errorConstructor = GitError; - } - expect(errorInstance).toBeInstanceOf(errorConstructor); expect(errorInstance).toHaveProperty('message', expect.stringMatching(message)); } diff --git a/packages/test-utils/src/instance.ts b/packages/test-utils/src/instance.ts new file mode 100644 index 00000000..37cead0c --- /dev/null +++ b/packages/test-utils/src/instance.ts @@ -0,0 +1,3 @@ +import { simpleGit as newSimpleGit } from 'simple-git'; + +export { newSimpleGit }; diff --git a/simple-git/test/__fixtures__/like.ts b/packages/test-utils/src/like.ts similarity index 100% rename from simple-git/test/__fixtures__/like.ts rename to packages/test-utils/src/like.ts diff --git a/simple-git/test/__fixtures__/setup-conflicted.ts b/packages/test-utils/src/setup/setup-conflicted.ts similarity index 93% rename from simple-git/test/__fixtures__/setup-conflicted.ts rename to packages/test-utils/src/setup/setup-conflicted.ts index 655ba491..c7abfec1 100644 --- a/simple-git/test/__fixtures__/setup-conflicted.ts +++ b/packages/test-utils/src/setup/setup-conflicted.ts @@ -1,4 +1,4 @@ -import { SimpleGitTestContext } from './create-test-context'; +import { SimpleGitTestContext } from '../create-test-context'; export const FIRST_BRANCH = 'first'; export const SECOND_BRANCH = 'second'; diff --git a/simple-git/test/__fixtures__/setup-files.ts b/packages/test-utils/src/setup/setup-files.ts similarity index 81% rename from simple-git/test/__fixtures__/setup-files.ts rename to packages/test-utils/src/setup/setup-files.ts index b2571ced..ff1b8dae 100644 --- a/simple-git/test/__fixtures__/setup-files.ts +++ b/packages/test-utils/src/setup/setup-files.ts @@ -1,4 +1,4 @@ -import { SimpleGitTestContext } from './create-test-context'; +import { SimpleGitTestContext } from '../create-test-context'; export async function setUpFilesAdded( { git, files }: SimpleGitTestContext, diff --git a/simple-git/test/__fixtures__/setup-init.ts b/packages/test-utils/src/setup/setup-init.ts similarity index 81% rename from simple-git/test/__fixtures__/setup-init.ts rename to packages/test-utils/src/setup/setup-init.ts index 53ca5c84..873c7645 100644 --- a/simple-git/test/__fixtures__/setup-init.ts +++ b/packages/test-utils/src/setup/setup-init.ts @@ -1,5 +1,5 @@ -import { SimpleGit } from '../../typings'; -import { SimpleGitTestContext } from './create-test-context'; +import { SimpleGit } from 'simple-git'; +import { SimpleGitTestContext } from '../create-test-context'; export const GIT_USER_NAME = 'Simple Git Tests'; export const GIT_USER_EMAIL = 'tests@simple-git.dev'; diff --git a/simple-git/test/__fixtures__/wait.ts b/packages/test-utils/src/wait.ts similarity index 100% rename from simple-git/test/__fixtures__/wait.ts rename to packages/test-utils/src/wait.ts diff --git a/simple-git/package.json b/simple-git/package.json index 57b944e7..79cb2c7e 100644 --- a/simple-git/package.json +++ b/simple-git/package.json @@ -21,6 +21,7 @@ "devDependencies": { "@kwsites/promise-result": "^1.1.0", "@simple-git/babel-config": "^1.0.0", + "@simple-git/test-utils": "^0.0.0", "@types/debug": "^4.1.5", "@types/jest": "^27.0.3", "@types/node": "^14.14.10", diff --git a/simple-git/test/__fixtures__/index.ts b/simple-git/test/__fixtures__/index.ts deleted file mode 100644 index c67ea1fe..00000000 --- a/simple-git/test/__fixtures__/index.ts +++ /dev/null @@ -1,9 +0,0 @@ -export * from './create-test-context'; -export * from './expectations'; -export * from './instance'; -export * from './like'; -export * from './wait'; - -export * from './setup-conflicted'; -export * from './setup-files'; -export * from './setup-init'; diff --git a/simple-git/test/__fixtures__/instance.ts b/simple-git/test/__fixtures__/instance.ts deleted file mode 100644 index 63610d6d..00000000 --- a/simple-git/test/__fixtures__/instance.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { SimpleGit, SimpleGitOptions } from '../../typings'; - -export function newSimpleGit(...args: [] | [string] | [Partial]): SimpleGit { - const simpleGit = require('../..'); - return simpleGit(...args); -} diff --git a/simple-git/test/integration/add.spec.ts b/simple-git/test/integration/add.spec.ts index 5ed10c2a..aaaf0417 100644 --- a/simple-git/test/integration/add.spec.ts +++ b/simple-git/test/integration/add.spec.ts @@ -4,7 +4,7 @@ import { newSimpleGit, setUpInit, SimpleGitTestContext, -} from '../__fixtures__'; +} from '@simple-git/test-utils'; describe('add', () => { let context: SimpleGitTestContext; diff --git a/simple-git/test/integration/bad-initial-path.spec.ts b/simple-git/test/integration/bad-initial-path.spec.ts index 0fb354e5..155612ee 100644 --- a/simple-git/test/integration/bad-initial-path.spec.ts +++ b/simple-git/test/integration/bad-initial-path.spec.ts @@ -4,7 +4,7 @@ import { like, newSimpleGit, SimpleGitTestContext, -} from '../__fixtures__'; +} from '@simple-git/test-utils'; import { GitConstructError } from '../..'; diff --git a/simple-git/test/integration/branches.spec.ts b/simple-git/test/integration/branches.spec.ts index f6190eec..6f05c2bc 100644 --- a/simple-git/test/integration/branches.spec.ts +++ b/simple-git/test/integration/branches.spec.ts @@ -6,7 +6,7 @@ import { newSimpleGit, setUpInit, SimpleGitTestContext, -} from '../__fixtures__'; +} from '@simple-git/test-utils'; describe('branches', () => { let context: SimpleGitTestContext; diff --git a/simple-git/test/integration/broken-chains.spec.ts b/simple-git/test/integration/broken-chains.spec.ts index ec076d18..0d5edb8e 100644 --- a/simple-git/test/integration/broken-chains.spec.ts +++ b/simple-git/test/integration/broken-chains.spec.ts @@ -1,11 +1,6 @@ -import { isPromiseFailure, promiseError, promiseResult } from '@kwsites/promise-result'; -import { - assertGitError, - createTestContext, - newSimpleGit, - SimpleGitTestContext, -} from '../__fixtures__'; -import { SimpleGit } from '../../typings'; +import { isPromiseFailure, promiseError, promiseResult } from "@kwsites/promise-result"; +import { assertGitError, createTestContext, newSimpleGit, SimpleGitTestContext } from "@simple-git/test-utils"; +import { SimpleGit } from "../../typings"; /* The broken chains test assures the behaviour of both standard and Promise wrapped versions diff --git a/simple-git/test/integration/change-directory.spec.ts b/simple-git/test/integration/change-directory.spec.ts index 45f082dd..136202aa 100644 --- a/simple-git/test/integration/change-directory.spec.ts +++ b/simple-git/test/integration/change-directory.spec.ts @@ -5,7 +5,7 @@ import { newSimpleGit, SimpleGitTestContext, wait, -} from '../__fixtures__'; +} from '@simple-git/test-utils'; import { SimpleGit } from '../../typings'; describe('change-directory', () => { diff --git a/simple-git/test/integration/check-is-repo.spec.ts b/simple-git/test/integration/check-is-repo.spec.ts index c8c1e3f7..4bf5fbee 100644 --- a/simple-git/test/integration/check-is-repo.spec.ts +++ b/simple-git/test/integration/check-is-repo.spec.ts @@ -3,7 +3,7 @@ import { createTestContext, newSimpleGit, SimpleGitTestContext, -} from '../__fixtures__'; +} from '@simple-git/test-utils'; import { CheckRepoActions } from '../../src/lib/tasks/check-is-repo'; diff --git a/simple-git/test/integration/checkout.spec.ts b/simple-git/test/integration/checkout.spec.ts index 546a9b73..8812e339 100644 --- a/simple-git/test/integration/checkout.spec.ts +++ b/simple-git/test/integration/checkout.spec.ts @@ -1,4 +1,9 @@ -import { createTestContext, newSimpleGit, setUpInit, SimpleGitTestContext } from '../__fixtures__'; +import { + createTestContext, + newSimpleGit, + setUpInit, + SimpleGitTestContext, +} from '@simple-git/test-utils'; import { SimpleGit } from '../../typings'; import { promiseError } from '@kwsites/promise-result'; diff --git a/simple-git/test/integration/clean.spec.ts b/simple-git/test/integration/clean.spec.ts index 9c4260e3..79e9ff35 100644 --- a/simple-git/test/integration/clean.spec.ts +++ b/simple-git/test/integration/clean.spec.ts @@ -7,7 +7,7 @@ import { setUpFilesAdded, setUpInit, SimpleGitTestContext, -} from '../__fixtures__'; +} from '@simple-git/test-utils'; import { CleanOptions } from '../../src/lib/tasks/clean'; diff --git a/simple-git/test/integration/commit.spec.ts b/simple-git/test/integration/commit.spec.ts index 0342eec9..6f0f2838 100644 --- a/simple-git/test/integration/commit.spec.ts +++ b/simple-git/test/integration/commit.spec.ts @@ -1,4 +1,9 @@ -import { createTestContext, newSimpleGit, setUpInit, SimpleGitTestContext } from '../__fixtures__'; +import { + createTestContext, + newSimpleGit, + setUpInit, + SimpleGitTestContext, +} from '@simple-git/test-utils'; describe('commit', () => { let context: SimpleGitTestContext; diff --git a/simple-git/test/integration/completion-plugin.spec.ts b/simple-git/test/integration/completion-plugin.spec.ts index fd29db06..f0fb1bb0 100644 --- a/simple-git/test/integration/completion-plugin.spec.ts +++ b/simple-git/test/integration/completion-plugin.spec.ts @@ -1,5 +1,5 @@ import { promiseError } from '@kwsites/promise-result'; -import { createTestContext, newSimpleGit, SimpleGitTestContext } from '../__fixtures__'; +import { createTestContext, newSimpleGit, SimpleGitTestContext } from '@simple-git/test-utils'; describe('progress-monitor', () => { let context: SimpleGitTestContext; diff --git a/simple-git/test/integration/concurrent-commands.spec.ts b/simple-git/test/integration/concurrent-commands.spec.ts index a9b571c2..a2cce2df 100644 --- a/simple-git/test/integration/concurrent-commands.spec.ts +++ b/simple-git/test/integration/concurrent-commands.spec.ts @@ -4,7 +4,7 @@ import { setUpFilesAdded, setUpInit, SimpleGitTestContext, -} from '../__fixtures__'; +} from '@simple-git/test-utils'; describe('concurrent commands', () => { let contexts: { first: SimpleGitTestContext; second: SimpleGitTestContext }; diff --git a/simple-git/test/integration/config.spec.ts b/simple-git/test/integration/config.spec.ts index 3e813a45..d0468033 100644 --- a/simple-git/test/integration/config.spec.ts +++ b/simple-git/test/integration/config.spec.ts @@ -1,4 +1,9 @@ -import { createTestContext, newSimpleGit, setUpInit, SimpleGitTestContext } from '../__fixtures__'; +import { + createTestContext, + newSimpleGit, + setUpInit, + SimpleGitTestContext, +} from '@simple-git/test-utils'; import { GitConfigScope } from '../..'; import { SimpleGit } from '../../typings'; diff --git a/simple-git/test/integration/diff.spec.ts b/simple-git/test/integration/diff.spec.ts index b6323524..921e4835 100644 --- a/simple-git/test/integration/diff.spec.ts +++ b/simple-git/test/integration/diff.spec.ts @@ -5,7 +5,7 @@ import { setUpFilesAdded, setUpInit, SimpleGitTestContext, -} from '../__fixtures__'; +} from '@simple-git/test-utils'; describe('diff', function () { const nameWithTrailingSpaces = 'name-with-trailing-spaces '; diff --git a/simple-git/test/integration/exec.spec.ts b/simple-git/test/integration/exec.spec.ts index 8841536a..6c7b0f6f 100644 --- a/simple-git/test/integration/exec.spec.ts +++ b/simple-git/test/integration/exec.spec.ts @@ -1,4 +1,4 @@ -import { createTestContext, newSimpleGit, SimpleGitTestContext } from '../__fixtures__'; +import { createTestContext, newSimpleGit, SimpleGitTestContext } from '@simple-git/test-utils'; describe('exec', () => { let context: SimpleGitTestContext; diff --git a/simple-git/test/integration/fetch.spec.ts b/simple-git/test/integration/fetch.spec.ts index 7801b363..964ae06d 100644 --- a/simple-git/test/integration/fetch.spec.ts +++ b/simple-git/test/integration/fetch.spec.ts @@ -1,4 +1,9 @@ -import { createTestContext, newSimpleGit, setUpInit, SimpleGitTestContext } from '../__fixtures__'; +import { + createTestContext, + newSimpleGit, + setUpInit, + SimpleGitTestContext, +} from '@simple-git/test-utils'; describe('fetch', () => { let context: SimpleGitTestContext; @@ -70,6 +75,7 @@ describe('fetch', () => { await git.raw('checkout', '-b', 'bravo'); await git.raw('checkout', '-b', 'charlie'); } + /** * Configure the remote with changes to be retrieved when using fetch on the local */ diff --git a/simple-git/test/integration/grep.spec.ts b/simple-git/test/integration/grep.spec.ts index 315c7d55..6d1d8caa 100644 --- a/simple-git/test/integration/grep.spec.ts +++ b/simple-git/test/integration/grep.spec.ts @@ -1,4 +1,4 @@ -import { createTestContext, newSimpleGit, SimpleGitTestContext } from '../__fixtures__'; +import { createTestContext, newSimpleGit, SimpleGitTestContext } from '@simple-git/test-utils'; import { grepQueryBuilder } from '../..'; describe('grep', () => { diff --git a/simple-git/test/integration/log.spec.ts b/simple-git/test/integration/log.spec.ts index 8a32cd0f..2a57ae7e 100644 --- a/simple-git/test/integration/log.spec.ts +++ b/simple-git/test/integration/log.spec.ts @@ -8,7 +8,7 @@ import { setUpFilesAdded, setUpInit, SimpleGitTestContext, -} from '../__fixtures__'; +} from '@simple-git/test-utils'; import type { DiffResultTextFile } from '../../typings'; describe('log', () => { diff --git a/simple-git/test/integration/merge-integration.spec.ts b/simple-git/test/integration/merge-integration.spec.ts index 13525ccd..e7560108 100644 --- a/simple-git/test/integration/merge-integration.spec.ts +++ b/simple-git/test/integration/merge-integration.spec.ts @@ -11,7 +11,7 @@ import { setUpConflicted, setUpInit, SimpleGitTestContext, -} from '../__fixtures__'; +} from '@simple-git/test-utils'; describe('merge', () => { let context: SimpleGitTestContext; diff --git a/simple-git/test/integration/progress-plugin.spec.ts b/simple-git/test/integration/progress-plugin.spec.ts index 144a7f09..7430ad44 100644 --- a/simple-git/test/integration/progress-plugin.spec.ts +++ b/simple-git/test/integration/progress-plugin.spec.ts @@ -1,4 +1,4 @@ -import { createTestContext, newSimpleGit, SimpleGitTestContext } from '../__fixtures__'; +import { createTestContext, newSimpleGit, SimpleGitTestContext } from '@simple-git/test-utils'; import { SimpleGitOptions } from '../../src/lib/types'; describe('progress-monitor', () => { diff --git a/simple-git/test/integration/promise-from-root.spec.ts b/simple-git/test/integration/promise-from-root.spec.ts index bb0bb5c4..314727c3 100644 --- a/simple-git/test/integration/promise-from-root.spec.ts +++ b/simple-git/test/integration/promise-from-root.spec.ts @@ -1,4 +1,4 @@ -import { createTestContext, newSimpleGit, SimpleGitTestContext } from '../__fixtures__'; +import { createTestContext, newSimpleGit, SimpleGitTestContext } from '@simple-git/test-utils'; describe('promises-from-root', () => { let context: SimpleGitTestContext; diff --git a/simple-git/test/integration/promise.spec.ts b/simple-git/test/integration/promise.spec.ts index 4ddd08bf..bfd4a618 100644 --- a/simple-git/test/integration/promise.spec.ts +++ b/simple-git/test/integration/promise.spec.ts @@ -1,4 +1,9 @@ -import { createTestContext, newSimpleGit, setUpInit, SimpleGitTestContext } from '../__fixtures__'; +import { + createTestContext, + newSimpleGit, + setUpInit, + SimpleGitTestContext, +} from '@simple-git/test-utils'; import { InitSummary } from '../../src/lib/responses/InitSummary'; import { StatusSummary } from '../../src/lib/responses/StatusSummary'; diff --git a/simple-git/test/integration/pull-fails-ff.spec.ts b/simple-git/test/integration/pull-fails-ff.spec.ts index effeacab..0ba22a9e 100644 --- a/simple-git/test/integration/pull-fails-ff.spec.ts +++ b/simple-git/test/integration/pull-fails-ff.spec.ts @@ -6,7 +6,7 @@ import { newSimpleGit, setUpInit, SimpleGitTestContext, -} from '../__fixtures__'; +} from '@simple-git/test-utils'; describe('pull --ff-only', () => { let context: SimpleGitTestContext; diff --git a/simple-git/test/integration/remote.spec.ts b/simple-git/test/integration/remote.spec.ts index 7d0e421c..0e61c829 100644 --- a/simple-git/test/integration/remote.spec.ts +++ b/simple-git/test/integration/remote.spec.ts @@ -1,4 +1,9 @@ -import { createTestContext, newSimpleGit, setUpInit, SimpleGitTestContext } from '../__fixtures__'; +import { + createTestContext, + newSimpleGit, + setUpInit, + SimpleGitTestContext, +} from '@simple-git/test-utils'; describe('remote', () => { let context: SimpleGitTestContext; diff --git a/simple-git/test/integration/reset.spec.ts b/simple-git/test/integration/reset.spec.ts index 4884b115..5649978d 100644 --- a/simple-git/test/integration/reset.spec.ts +++ b/simple-git/test/integration/reset.spec.ts @@ -6,7 +6,7 @@ import { setUpFilesAdded, setUpInit, SimpleGitTestContext, -} from '../__fixtures__'; +} from '@simple-git/test-utils'; import { ResetMode } from '../../src/lib/tasks/reset'; diff --git a/simple-git/test/integration/rev-parse.spec.ts b/simple-git/test/integration/rev-parse.spec.ts index cb905f9a..9197ba28 100644 --- a/simple-git/test/integration/rev-parse.spec.ts +++ b/simple-git/test/integration/rev-parse.spec.ts @@ -4,7 +4,7 @@ import { setUpFilesAdded, setUpInit, SimpleGitTestContext, -} from '../__fixtures__'; +} from '@simple-git/test-utils'; describe('rev-parse', () => { let context: SimpleGitTestContext; diff --git a/simple-git/test/integration/status.spec.ts b/simple-git/test/integration/status.spec.ts index 5e4883ed..364e8526 100644 --- a/simple-git/test/integration/status.spec.ts +++ b/simple-git/test/integration/status.spec.ts @@ -5,7 +5,7 @@ import { setUpFilesAdded, setUpInit, SimpleGitTestContext, -} from '../__fixtures__'; +} from '@simple-git/test-utils'; describe('status', () => { let context: SimpleGitTestContext; diff --git a/simple-git/test/integration/tag.spec.ts b/simple-git/test/integration/tag.spec.ts index bb992d07..f0e7f345 100644 --- a/simple-git/test/integration/tag.spec.ts +++ b/simple-git/test/integration/tag.spec.ts @@ -5,7 +5,7 @@ import { setUpFilesAdded, setUpInit, SimpleGitTestContext, -} from '../__fixtures__'; +} from '@simple-git/test-utils'; describe('tag', () => { let context: SimpleGitTestContext; diff --git a/simple-git/test/integration/timeout-plugin.spec.ts b/simple-git/test/integration/timeout-plugin.spec.ts index 011a1bb2..17442747 100644 --- a/simple-git/test/integration/timeout-plugin.spec.ts +++ b/simple-git/test/integration/timeout-plugin.spec.ts @@ -4,7 +4,7 @@ import { createTestContext, newSimpleGit, SimpleGitTestContext, -} from '../__fixtures__'; +} from '@simple-git/test-utils'; import { GitPluginError } from '../..'; diff --git a/simple-git/test/unit/__fixtures__/child-processes.ts b/simple-git/test/unit/__fixtures__/child-processes.ts index ceaab134..70e7c7fd 100644 --- a/simple-git/test/unit/__fixtures__/child-processes.ts +++ b/simple-git/test/unit/__fixtures__/child-processes.ts @@ -1,5 +1,5 @@ import { MockChildProcess, mockChildProcessModule } from '../__mocks__/mock-child-process'; -import { wait } from '../../__fixtures__'; +import { wait } from '@simple-git/test-utils'; const EXIT_CODE_SUCCESS = 0; const EXIT_CODE_ERROR = 1; diff --git a/simple-git/test/unit/__fixtures__/index.ts b/simple-git/test/unit/__fixtures__/index.ts index 874075e3..436ee758 100644 --- a/simple-git/test/unit/__fixtures__/index.ts +++ b/simple-git/test/unit/__fixtures__/index.ts @@ -11,7 +11,4 @@ export * from './responses/merge'; export * from './responses/remote-messages'; export * from './responses/status'; -export * from '../../__fixtures__/expectations'; -export * from '../../__fixtures__/instance'; -export * from '../../__fixtures__/like'; -export * from '../../__fixtures__/wait'; +export * from '@simple-git/test-utils'; diff --git a/simple-git/test/unit/__mocks__/mock-child-process.ts b/simple-git/test/unit/__mocks__/mock-child-process.ts index c6a961a1..8717c8e7 100644 --- a/simple-git/test/unit/__mocks__/mock-child-process.ts +++ b/simple-git/test/unit/__mocks__/mock-child-process.ts @@ -74,12 +74,15 @@ class MockChildProcessImpl extends MockEventTargetImpl implements MockChildProce public get $args() { return this.constructedWith[1]; } + public get $command() { return this.constructedWith[0]; } + public get $options() { return this.constructedWith[2]; } + public get $env() { return this.constructedWith[2]?.env; } diff --git a/simple-git/test/unit/apply-patch.spec.ts b/simple-git/test/unit/apply-patch.spec.ts index 47f08c7c..5c33e090 100644 --- a/simple-git/test/unit/apply-patch.spec.ts +++ b/simple-git/test/unit/apply-patch.spec.ts @@ -63,87 +63,83 @@ describe('applyPatch', () => { describe('usage', () => { let callback: jest.Mock; - const tests: Array<[ - string, - RegExp | null, - 'Y' | 'N', - (git: SimpleGit) => Promise - ]> = [ - ['patch - no-opt - no-callback ', null, 'N', (git) => git.applyPatch('foo')], + const tests: Array<[string, RegExp | null, 'Y' | 'N', (git: SimpleGit) => Promise]> = [ - 'patch - array-opt - no-callback ', - null, - 'N', - (git) => git.applyPatch('foo', ['--opt']), - ], - [ - 'patch - object-opt - no-callback ', - null, - 'N', - (git) => git.applyPatch('foo', { '--opt': null }), - ], - [ - 'patch - no-opt - with-callback', - null, - 'Y', - (git) => git.applyPatch('foo', callback), - ], - [ - 'patch - array-opt - with-callback', - null, - 'Y', - (git) => git.applyPatch('foo', ['--opt'], callback), - ], - [ - 'patch - object-opt - with-callback', - null, - 'Y', - (git) => git.applyPatch('foo', { '--opt': null }, callback), - ], - [ - 'patches - no-opt - no-callback ', - null, - 'N', - (git) => git.applyPatch(['foo', 'bar']), - ], - [ - 'patches - array-opt - no-callback ', - null, - 'N', - (git) => git.applyPatch(['foo', 'bar'], ['--opt']), - ], - [ - 'patches - object-opt - no-callback ', - null, - 'N', - (git) => git.applyPatch(['foo', 'bar'], { '--opt': null }), - ], - [ - 'patches - no-opt - with-callback', - null, - 'Y', - (git) => git.applyPatch(['foo', 'bar'], callback), - ], - [ - 'patches - array-opt - with-callback', - null, - 'Y', - (git) => git.applyPatch(['foo', 'bar'], ['--opt'], callback), - ], - [ - 'patches - object-opt - with-callback', - null, - 'Y', - (git) => git.applyPatch(['foo', 'bar'], { '--opt': null }, callback), - ], + ['patch - no-opt - no-callback ', null, 'N', (git) => git.applyPatch('foo')], + [ + 'patch - array-opt - no-callback ', + null, + 'N', + (git) => git.applyPatch('foo', ['--opt']), + ], + [ + 'patch - object-opt - no-callback ', + null, + 'N', + (git) => git.applyPatch('foo', { '--opt': null }), + ], + [ + 'patch - no-opt - with-callback', + null, + 'Y', + (git) => git.applyPatch('foo', callback), + ], + [ + 'patch - array-opt - with-callback', + null, + 'Y', + (git) => git.applyPatch('foo', ['--opt'], callback), + ], + [ + 'patch - object-opt - with-callback', + null, + 'Y', + (git) => git.applyPatch('foo', { '--opt': null }, callback), + ], + [ + 'patches - no-opt - no-callback ', + null, + 'N', + (git) => git.applyPatch(['foo', 'bar']), + ], + [ + 'patches - array-opt - no-callback ', + null, + 'N', + (git) => git.applyPatch(['foo', 'bar'], ['--opt']), + ], + [ + 'patches - object-opt - no-callback ', + null, + 'N', + (git) => git.applyPatch(['foo', 'bar'], { '--opt': null }), + ], + [ + 'patches - no-opt - with-callback', + null, + 'Y', + (git) => git.applyPatch(['foo', 'bar'], callback), + ], + [ + 'patches - array-opt - with-callback', + null, + 'Y', + (git) => git.applyPatch(['foo', 'bar'], ['--opt'], callback), + ], + [ + 'patches - object-opt - with-callback', + null, + 'Y', + (git) => git.applyPatch(['foo', 'bar'], { '--opt': null }, callback), + ], - [ - 'error: no patches', - /string patches/, - 'N', - (git) => git.applyPatch({ '--opt': null } as any), - ], - ]; + [ + 'error: no patches', + /string patches/, + 'N', + (git) => git.applyPatch({ '--opt': null } as any), + ], + ]; beforeEach(() => (callback = jest.fn())); diff --git a/simple-git/test/unit/clean.spec.ts b/simple-git/test/unit/clean.spec.ts index bc21ebf5..b238da43 100644 --- a/simple-git/test/unit/clean.spec.ts +++ b/simple-git/test/unit/clean.spec.ts @@ -105,7 +105,7 @@ describe('clean', () => { it( 'cleans with dfx', test((done) => { - git.clean('dfx', function(err: null | Error) { + git.clean('dfx', function (err: null | Error) { expect(err).toBeNull(); assertExecutedCommands('clean', '-f', '-d', '-x'); done(); @@ -117,7 +117,7 @@ describe('clean', () => { it( 'missing required n or f in mode', test((done) => { - git.clean('x', function(err: null | Error) { + git.clean('x', function (err: null | Error) { expectTheError(err).toBe(CONFIG_ERROR_MODE_REQUIRED); expectNoTasksToHaveBeenRun(); done(); @@ -128,7 +128,7 @@ describe('clean', () => { it( 'unknown options', test((done) => { - git.clean('fa', function(err: null | Error) { + git.clean('fa', function (err: null | Error) { expectTheError(err).toBe(CONFIG_ERROR_UNKNOWN_OPTION); expectNoTasksToHaveBeenRun(); done(); @@ -139,7 +139,7 @@ describe('clean', () => { it( 'no args', test((done) => { - git.clean(function(err: null | Error) { + git.clean(function (err: null | Error) { expectTheError(err).toBe(CONFIG_ERROR_MODE_REQUIRED); expectNoTasksToHaveBeenRun(); done(); @@ -150,7 +150,7 @@ describe('clean', () => { it( 'just show no directories', test((done) => { - git.clean('n', function(err: null | Error) { + git.clean('n', function (err: null | Error) { expect(err).toBeNull(); assertExecutedCommands('clean', '-n'); done(); @@ -162,7 +162,7 @@ describe('clean', () => { it( 'just show', test((done) => { - git.clean('n', ['-d'], function(err: null | Error) { + git.clean('n', ['-d'], function (err: null | Error) { expect(err).toBeNull(); assertExecutedCommands('clean', '-n', '-d'); done(); @@ -174,7 +174,7 @@ describe('clean', () => { it( 'force clean space', test((done) => { - git.clean('f', ['-d'], function(err: null | Error) { + git.clean('f', ['-d'], function (err: null | Error) { expect(err).toBeNull(); assertExecutedCommands('clean', '-f', '-d'); done(); @@ -186,7 +186,7 @@ describe('clean', () => { it( 'clean ignored files', test((done) => { - git.clean('f', ['-x', '-d'], function(err: null | Error) { + git.clean('f', ['-x', '-d'], function (err: null | Error) { expect(err).toBeNull(); assertExecutedCommands('clean', '-f', '-x', '-d'); done(); @@ -198,7 +198,7 @@ describe('clean', () => { it( 'prevents interactive mode - shorthand option', test((done) => { - git.clean('f', ['-i'], function(err: null | Error) { + git.clean('f', ['-i'], function (err: null | Error) { expectTheError(err).toBe(CONFIG_ERROR_INTERACTIVE_MODE); expectNoTasksToHaveBeenRun(); @@ -210,7 +210,7 @@ describe('clean', () => { it( 'prevents interactive mode - shorthand mode', test((done) => { - git.clean('fi', function(err: null | Error) { + git.clean('fi', function (err: null | Error) { expectTheError(err).toBe(CONFIG_ERROR_INTERACTIVE_MODE); expectNoTasksToHaveBeenRun(); @@ -222,7 +222,7 @@ describe('clean', () => { it( 'prevents interactive mode - longhand option', test((done) => { - git.clean('f', ['--interactive'], function(err: null | Error) { + git.clean('f', ['--interactive'], function (err: null | Error) { expectTheError(err).toBe(CONFIG_ERROR_INTERACTIVE_MODE); expectNoTasksToHaveBeenRun(); diff --git a/simple-git/test/unit/completion-detection-plugin.spec.ts b/simple-git/test/unit/completion-detection-plugin.spec.ts index 4e622e9b..a2abea2d 100644 --- a/simple-git/test/unit/completion-detection-plugin.spec.ts +++ b/simple-git/test/unit/completion-detection-plugin.spec.ts @@ -1,5 +1,4 @@ -import { newSimpleGit, wait } from '../__fixtures__'; -import { theChildProcessMatching } from './__fixtures__'; +import { newSimpleGit, theChildProcessMatching, wait } from './__fixtures__'; import { MockChildProcess } from './__mocks__/mock-child-process'; describe('completionDetectionPlugin', () => { diff --git a/simple-git/test/unit/grep.spec.ts b/simple-git/test/unit/grep.spec.ts index d9667f05..1eee37a6 100644 --- a/simple-git/test/unit/grep.spec.ts +++ b/simple-git/test/unit/grep.spec.ts @@ -1,7 +1,11 @@ import { promiseError } from '@kwsites/promise-result'; -import { assertGitError, newSimpleGit } from '../__fixtures__'; -import { assertExecutedCommands, closeWithSuccess } from './__fixtures__'; +import { + assertExecutedCommands, + assertGitError, + closeWithSuccess, + newSimpleGit, +} from './__fixtures__'; import { grepQueryBuilder, TaskConfigurationError } from '../..'; import { NULL } from '../../src/lib/utils'; diff --git a/simple-git/test/unit/logging.spec.ts b/simple-git/test/unit/logging.spec.ts index a9704ac2..f53334bf 100644 --- a/simple-git/test/unit/logging.spec.ts +++ b/simple-git/test/unit/logging.spec.ts @@ -1,9 +1,9 @@ import { + $logMessagesFor, + $logNames, closeWithError, closeWithSuccess, newSimpleGit, - $logNames, - $logMessagesFor, } from './__fixtures__'; import { TasksPendingQueue } from '../../src/lib/runners/tasks-pending-queue'; diff --git a/simple-git/tsconfig.json b/simple-git/tsconfig.json index cfa7b417..c0363c2b 100644 --- a/simple-git/tsconfig.json +++ b/simple-git/tsconfig.json @@ -5,7 +5,6 @@ "target": "es2015", "module": "commonjs", "lib": ["dom", "esnext"], - "jsx": "react", "rootDir": ".", // optionally pipe output an alternative directory // TODO once all content converted to TS