From 1d2889d68f48f741b262ca6a9bc16fe44e3c2019 Mon Sep 17 00:00:00 2001 From: Marcelo Shima Date: Fri, 26 May 2023 17:45:55 -0300 Subject: [PATCH] make test compatible with environment 4 --- test/base.test.ts | 9 ++++----- test/environment.test.ts | 11 +++-------- test/fs.test.ts | 6 ++++-- test/generators-compose-workflow.test.ts | 5 +++-- test/generators.test.ts | 4 +++- test/prompt-suggestion.test.ts | 6 ++++-- 6 files changed, 21 insertions(+), 20 deletions(-) diff --git a/test/base.test.ts b/test/base.test.ts index 748dda00..52f82f30 100644 --- a/test/base.test.ts +++ b/test/base.test.ts @@ -9,7 +9,7 @@ import _ from 'lodash'; import { spy as sinonSpy, fake as sinonFake, assert as sinonAssert } from 'sinon'; import { passthrough } from '@yeoman/transform'; import assert from 'yeoman-assert'; -import YeomanEnvironment from 'yeoman-environment'; +import Environment from 'yeoman-environment'; import helpers, { TestAdapter } from 'yeoman-test'; import Base from './utils.js'; @@ -20,8 +20,7 @@ const __dirname = dirname(__filename); const tmpdir = path.join(os.tmpdir(), 'yeoman-base'); const resolveddir = path.join(os.tmpdir(), 'yeoman-base-generator'); - -const { createEnv } = YeomanEnvironment; +const createEnv = (options?) => new Environment({ skipInstall: true, adapter: new TestAdapter(), ...options }); describe('Base', () => { let env; @@ -31,7 +30,7 @@ describe('Base', () => { beforeEach(helpers.setUpTestDirectory(tmpdir)); beforeEach(function () { - env = createEnv([], { 'skip-install': true }, new TestAdapter()); + env = createEnv(); // Ignore error forwarded to environment env.on('error', _ => {}); @@ -422,7 +421,7 @@ describe('Base', () => { this.fs.write(filepath, 'some new content'); }; - const env = createEnv([], { 'skip-install': true }, new TestAdapter({ mockedAnswers: action })); + const env = createEnv({ adapter: new TestAdapter({ mockedAnswers: action }) }); const testGen = new TestGenerator([], { resolved: 'generator/app/index.js', namespace: 'dummy', diff --git a/test/environment.test.ts b/test/environment.test.ts index 20acaf64..27b3fdf7 100644 --- a/test/environment.test.ts +++ b/test/environment.test.ts @@ -13,7 +13,7 @@ describe('Generator with environment version', () => { describe('mocked 3.0.0', () => { before(function () { this.timeout(100_000); - this.env = Environment.createEnv([], { 'skip-install': true }, new TestAdapter()); + this.env = new Environment({ skipInstall: true, adapter: new TestAdapter() }); this.env.getVersion = this.env.getVersion || (() => {}); this.getVersionStub = sinonStub(this.env, 'getVersion'); @@ -165,9 +165,8 @@ describe('Generator with environment version', () => { describe('mocked 2.8.1', () => { before(function () { this.timeout(100_000); - this.env = Environment.createEnv([], { 'skip-install': true }, new TestAdapter()); - this.getVersion = Environment.prototype.getVersion; - delete Environment.prototype.getVersion; + this.env = new Environment({ skipInstall: true, adapter: new TestAdapter() }); + this.env.getVersion = undefined; this.Dummy = class extends Base {}; this.dummy = new this.Dummy(['bar', 'baz', 'bom'], { @@ -180,10 +179,6 @@ describe('Generator with environment version', () => { }); }); - after(function () { - Environment.prototype.getVersion = this.getVersion; - }); - describe('#checkEnvironmentVersion', () => { describe('without args', () => { it('throws exception', function () { diff --git a/test/fs.test.ts b/test/fs.test.ts index 0a020724..dfb8e08e 100644 --- a/test/fs.test.ts +++ b/test/fs.test.ts @@ -1,12 +1,14 @@ import assert from 'node:assert'; import path from 'node:path'; +import { esmocha } from 'esmocha'; import { stub as sinonStub } from 'sinon'; import Environment from 'yeoman-environment'; -import { esmocha } from 'esmocha'; +import { TestAdapter } from 'yeoman-test'; import BaseGenerator from '../src/generator.js'; import Base from './utils.js'; const randomString = () => Math.random().toString(36).slice(7); +const createEnv = () => new Environment({ skipInstall: true, adapter: new TestAdapter() }); describe('generators.Base (actions/fs)', () => { const baseReturns = { @@ -18,7 +20,7 @@ describe('generators.Base (actions/fs)', () => { before(function () { this.timeout(10_000); - this.gen = new Base({ env: Environment.createEnv() }); + this.gen = new Base({ env: createEnv() }); }); beforeEach(function () { diff --git a/test/generators-compose-workflow.test.ts b/test/generators-compose-workflow.test.ts index e354cf31..eb259ea2 100644 --- a/test/generators-compose-workflow.test.ts +++ b/test/generators-compose-workflow.test.ts @@ -2,19 +2,20 @@ import os from 'node:os'; import path from 'node:path'; import { mkdirSync } from 'node:fs'; import { spy as sinonSpy, assert as sinonAssert } from 'sinon'; -import yeoman from 'yeoman-environment'; +import Environment from 'yeoman-environment'; import assert from 'yeoman-assert'; import helpers, { TestAdapter } from 'yeoman-test'; import Base from './utils.js'; const tmpdir = path.join(os.tmpdir(), 'yeoman-base'); const resolveddir = path.join(os.tmpdir(), 'yeoman-base-generator'); +const createEnv = () => new Environment({ skipInstall: true, adapter: new TestAdapter() }); describe('Multiples generators', () => { beforeEach(helpers.setUpTestDirectory(tmpdir)); beforeEach(function () { - this.env = yeoman.createEnv([], { 'skip-install': true }, new TestAdapter()); + this.env = createEnv(); mkdirSync(resolveddir, { recursive: true }); this.Dummy = class extends Base {}; this.spyExec = sinonSpy(); diff --git a/test/generators.test.ts b/test/generators.test.ts index 337b3c93..428c1887 100644 --- a/test/generators.test.ts +++ b/test/generators.test.ts @@ -3,14 +3,16 @@ import path from 'node:path'; import os from 'node:os'; import Environment from 'yeoman-environment'; import assert from 'yeoman-assert'; +import { TestAdapter } from 'yeoman-test'; import semver from 'semver'; import Base from './utils.js'; const NAMESPACE = 'somenamespace'; +const createEnv = () => new Environment({ skipInstall: true, adapter: new TestAdapter() }); describe('Generators module', () => { beforeEach(function () { - this.env = Environment.createEnv(); + this.env = createEnv(); }); describe('Base', () => { diff --git a/test/prompt-suggestion.test.ts b/test/prompt-suggestion.test.ts index 01dc7942..06e2aa01 100644 --- a/test/prompt-suggestion.test.ts +++ b/test/prompt-suggestion.test.ts @@ -3,16 +3,18 @@ import assert from 'node:assert'; import os from 'node:os'; import { rmSync } from 'node:fs'; import inquirer from 'inquirer'; -import env from 'yeoman-environment'; +import Environment from 'yeoman-environment'; +import { TestAdapter } from 'yeoman-test'; import { create as createMemFsEditor } from 'mem-fs-editor'; import Storage from '../src/util/storage.js'; import { prefillQuestions, storeAnswers } from '../src/util/prompt-suggestion.js'; +const createEnv = () => new Environment({ skipInstall: true, adapter: new TestAdapter() }); /* eslint max-nested-callbacks: ["warn", 6] */ describe('PromptSuggestion', () => { beforeEach(function () { - this.memFs = env.createEnv().sharedFs; + this.memFs = createEnv().sharedFs; this.fs = createMemFsEditor(this.memFs); this.storePath = path.join(os.tmpdir(), 'suggestion-config.json'); this.store = new Storage('suggestion', this.fs, this.storePath);