⚒ Upgrades to the latest Gluegun beta

Upgrades to latest Gluegun beta.
Switches:
import { print } from 'gluegun'
// to
import { print } from 'gluegun/toolbox'

(And similar require statements elsewhere in the code base)
Tests now pass, although that took a bit of messing around.
I also had to redefine all the extension types, since strictNullChecks was failing due to optional properties. Since they're all included, I made them required. Per https://github.com/infinitered/gluegun/issues/367.

Warnings

:warning:

Changes were made to package.json, but not to package-lock.json - Perhaps you need to run npm install?

  Generated by :no_entry_sign: dangerJS

Travis tests have failed
Hey Jamon Holmgren,
Please read the following log in order to understand the failure reason.
It'll be awesome if you fix what's wrong and commit the changes.
Node.js: node

npm run test:ci

><EMAIL_ADDRESS>test:ci /home/travis/build/infinitered/solidarity
> jest --ci --runInBand && yarn test:extras

FAIL __tests__/commands/snapshot.ts
  ● Test suite failed to run

    Cannot find module 'gluegun/toolbox' from 'mockContext.ts'

    > 1 | const realThing = require('gluegun/toolbox')
      2 | const realSolidarityContext = require('../../src/extensions/solidarity-extension')
      3 | realSolidarityContext(realThing)
      4 |

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:169:17)
      at Object.<anonymous> (__tests__/__mocks__/mockContext.ts:1:6264)

FAIL __tests__/command_helpers/checkRequirement.ts
  ● Test suite failed to run

    Cannot find module 'gluegun/toolbox' from 'checkRequirement.ts'

      21 | jest.mock('../../src/extensions/functions/checkFile')
      22 | const checkFile = require('../../src/extensions/functions/checkFile')
    > 23 |
      24 | const context = require('gluegun/toolbox')
      25 |
      26 | const badRule = toPairs({

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:169:17)
      at Object.<anonymous> (__tests__/command_helpers/checkRequirement.ts:23:100)

FAIL __tests__/command_helpers/updateRequirement.ts
  ● Test suite failed to run

    Cannot find module 'gluegun/toolbox' from 'mockContext.ts'

    > 1 | const realThing = require('gluegun/toolbox')
      2 | const realSolidarityContext = require('../../src/extensions/solidarity-extension')
      3 | realSolidarityContext(realThing)
      4 |

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:169:17)
      at Object.<anonymous> (__tests__/__mocks__/mockContext.ts:1:6264)

FAIL __tests__/command_helpers/reviewRule.ts
  ● reviewRule › when rule: cli › rule gets added

    Cannot find module 'gluegun/toolbox' from 'mockContext.ts'

    > 1 | const realThing = require('gluegun/toolbox')
      2 | const realSolidarityContext = require('../../src/extensions/solidarity-extension')
      3 | realSolidarityContext(realThing)
      4 |

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:169:17)
      at Object.<anonymous> (__tests__/__mocks__/mockContext.ts:1:27)

  ● reviewRule › when rule: cli › rule gets added

    TypeError: Cannot destructure property `print` of 'undefined' or 'null'.

      18 |   context: SolidarityRunContext
      19 | ) => {
    > 20 |   const { print, solidarity } = context
      21 |   const { colors, checkmark, xmark } = print
      22 |   const prettyBool = (bl: boolean) => (bl ? checkmark + colors.green(' YES') : xmark + colors.red(' NO'))
      23 |   // @ts-ignore - flatten will never get a string bc tail is called first

      at src/extensions/functions/reviewRule.ts:20:33
      at src/extensions/functions/reviewRule.ts:8:1
      at Object.<anonymous>.__awaiter (src/extensions/functions/reviewRule.ts:8:1)
      at Object.<anonymous>.module.exports (src/extensions/functions/reviewRule.ts:18:3)
      at __tests__/command_helpers/reviewRule.ts:18:28
      at __tests__/command_helpers/reviewRule.ts:3:1
      at Object.<anonymous>.__awaiter (__tests__/command_helpers/reviewRule.ts:3:1)
      at Object.test (__tests__/command_helpers/reviewRule.ts:15:29)

  ● reviewRule › when rule: env › rule gets added

    Cannot find module 'mockContext' from 'reviewRule.ts'

       8 |   beforeEach(() => {
       9 |     // fresh mock context
    > 10 |     mockContext = examplePlugin(require('mockContext'))
      11 |     reportResults = createReport(mockContext)
      12 |   })
      13 |

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:169:17)
      at Object.beforeEach (__tests__/command_helpers/reviewRule.ts:10:33)

  ● reviewRule › when rule: env › rule gets added

    TypeError: Cannot destructure property `print` of 'undefined' or 'null'.

      18 |   context: SolidarityRunContext
      19 | ) => {
    > 20 |   const { print, solidarity } = context
      21 |   const { colors, checkmark, xmark } = print
      22 |   const prettyBool = (bl: boolean) => (bl ? checkmark + colors.green(' YES') : xmark + colors.red(' NO'))
      23 |   // @ts-ignore - flatten will never get a string bc tail is called first

      at src/extensions/functions/reviewRule.ts:20:33
      at src/extensions/functions/reviewRule.ts:8:1
      at Object.<anonymous>.__awaiter (src/extensions/functions/reviewRule.ts:8:1)
      at Object.<anonymous>.module.exports (src/extensions/functions/reviewRule.ts:18:3)
      at __tests__/command_helpers/reviewRule.ts:28:28
      at __tests__/command_helpers/reviewRule.ts:3:1
      at Object.<anonymous>.__awaiter (__tests__/command_helpers/reviewRule.ts:3:1)
      at Object.test (__tests__/command_helpers/reviewRule.ts:25:29)

  ● reviewRule › when rule: dir › rule gets added

    Cannot find module 'mockContext' from 'reviewRule.ts'

       8 |   beforeEach(() => {
       9 |     // fresh mock context
    > 10 |     mockContext = examplePlugin(require('mockContext'))
      11 |     reportResults = createReport(mockContext)
      12 |   })
      13 |

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:169:17)
      at Object.beforeEach (__tests__/command_helpers/reviewRule.ts:10:33)

  ● reviewRule › when rule: dir › rule gets added

    TypeError: Cannot destructure property `print` of 'undefined' or 'null'.

      18 |   context: SolidarityRunContext
      19 | ) => {
    > 20 |   const { print, solidarity } = context
      21 |   const { colors, checkmark, xmark } = print
      22 |   const prettyBool = (bl: boolean) => (bl ? checkmark + colors.green(' YES') : xmark + colors.red(' NO'))
      23 |   // @ts-ignore - flatten will never get a string bc tail is called first

      at src/extensions/functions/reviewRule.ts:20:33
      at src/extensions/functions/reviewRule.ts:8:1
      at Object.<anonymous>.__awaiter (src/extensions/functions/reviewRule.ts:8:1)
      at Object.<anonymous>.module.exports (src/extensions/functions/reviewRule.ts:18:3)
      at __tests__/command_helpers/reviewRule.ts:38:28
      at __tests__/command_helpers/reviewRule.ts:3:1
      at Object.<anonymous>.__awaiter (__tests__/command_helpers/reviewRule.ts:3:1)
      at Object.test (__tests__/command_helpers/reviewRule.ts:35:29)

  ● reviewRule › when rule: file › rule gets added

    Cannot find module 'mockContext' from 'reviewRule.ts'

       8 |   beforeEach(() => {
       9 |     // fresh mock context
    > 10 |     mockContext = examplePlugin(require('mockContext'))
      11 |     reportResults = createReport(mockContext)
      12 |   })
      13 |

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:169:17)
      at Object.beforeEach (__tests__/command_helpers/reviewRule.ts:10:33)

  ● reviewRule › when rule: file › rule gets added

    TypeError: Cannot destructure property `print` of 'undefined' or 'null'.

      18 |   context: SolidarityRunContext
      19 | ) => {
    > 20 |   const { print, solidarity } = context
      21 |   const { colors, checkmark, xmark } = print
      22 |   const prettyBool = (bl: boolean) => (bl ? checkmark + colors.green(' YES') : xmark + colors.red(' NO'))
      23 |   // @ts-ignore - flatten will never get a string bc tail is called first

      at src/extensions/functions/reviewRule.ts:20:33
      at src/extensions/functions/reviewRule.ts:8:1
      at Object.<anonymous>.__awaiter (src/extensions/functions/reviewRule.ts:8:1)
      at Object.<anonymous>.module.exports (src/extensions/functions/reviewRule.ts:18:3)
      at __tests__/command_helpers/reviewRule.ts:48:28
      at __tests__/command_helpers/reviewRule.ts:3:1
      at Object.<anonymous>.__awaiter (__tests__/command_helpers/reviewRule.ts:3:1)
      at Object.test (__tests__/command_helpers/reviewRule.ts:45:29)

  ● reviewRule › when rule: shell › rule gets added

    Cannot find module 'mockContext' from 'reviewRule.ts'

       8 |   beforeEach(() => {
       9 |     // fresh mock context
    > 10 |     mockContext = examplePlugin(require('mockContext'))
      11 |     reportResults = createReport(mockContext)
      12 |   })
      13 |

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:169:17)
      at Object.beforeEach (__tests__/command_helpers/reviewRule.ts:10:33)

  ● reviewRule › when rule: shell › rule gets added

    TypeError: Cannot destructure property `print` of 'undefined' or 'null'.

      18 |   context: SolidarityRunContext
      19 | ) => {
    > 20 |   const { print, solidarity } = context
      21 |   const { colors, checkmark, xmark } = print
      22 |   const prettyBool = (bl: boolean) => (bl ? checkmark + colors.green(' YES') : xmark + colors.red(' NO'))
      23 |   // @ts-ignore - flatten will never get a string bc tail is called first

      at src/extensions/functions/reviewRule.ts:20:33
      at src/extensions/functions/reviewRule.ts:8:1
      at Object.<anonymous>.__awaiter (src/extensions/functions/reviewRule.ts:8:1)
      at Object.<anonymous>.module.exports (src/extensions/functions/reviewRule.ts:18:3)
      at __tests__/command_helpers/reviewRule.ts:58:28
      at __tests__/command_helpers/reviewRule.ts:3:1
      at Object.<anonymous>.__awaiter (__tests__/command_helpers/reviewRule.ts:3:1)
      at Object.test (__tests__/command_helpers/reviewRule.ts:55:29)

  ● reviewRule › when rule: custom › rule gets added

    Cannot find module 'mockContext' from 'reviewRule.ts'

       8 |   beforeEach(() => {
       9 |     // fresh mock context
    > 10 |     mockContext = examplePlugin(require('mockContext'))
      11 |     reportResults = createReport(mockContext)
      12 |   })
      13 |

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:169:17)
      at Object.beforeEach (__tests__/command_helpers/reviewRule.ts:10:33)

  ● reviewRule › when rule: custom › rule gets added

    TypeError: Cannot read property 'cliRules' of undefined

      67 |       const rule = ['CUSTOM', [{ rule: 'custom', plugin: 'Example Plugin', name: 'checkThing' }]]
      68 |
    > 69 |       expect(reportResults.cliRules.length).toBe(1)
      70 |       const result = await reviewRule(rule, reportResults, mockContext)
      71 |       // CUSTOM rule (which adds CLI report) was added
      72 |       expect(reportResults.cliRules.length).toBe(2)

      at __tests__/command_helpers/reviewRule.ts:69:28
      at __tests__/command_helpers/reviewRule.ts:3:1
      at Object.<anonymous>.__awaiter (__tests__/command_helpers/reviewRule.ts:3:1)
      at Object.test (__tests__/command_helpers/reviewRule.ts:66:29)

  ● reviewRule › when rule: custom › does nothing when no report exists

    Cannot find module 'mockContext' from 'reviewRule.ts'

       8 |   beforeEach(() => {
       9 |     // fresh mock context
    > 10 |     mockContext = examplePlugin(require('mockContext'))
      11 |     reportResults = createReport(mockContext)
      12 |   })
      13 |

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:169:17)
      at Object.beforeEach (__tests__/command_helpers/reviewRule.ts:10:33)

  ● reviewRule › when rule: custom › does nothing when no report exists

    TypeError: Cannot read property 'cliRules' of undefined

      76 |       const rule = ['CUSTOM', [{ rule: 'custom', plugin: 'Example Plugin', name: 'checkSecondThing' }]]
      77 |
    > 78 |       expect(reportResults.cliRules.length).toBe(1)
      79 |       const result = await reviewRule(rule, reportResults, mockContext)
      80 |       // should not change rules
      81 |       expect(reportResults.cliRules.length).toBe(1)

      at __tests__/command_helpers/reviewRule.ts:78:28
      at __tests__/command_helpers/reviewRule.ts:3:1
      at Object.<anonymous>.__awaiter (__tests__/command_helpers/reviewRule.ts:3:1)
      at Object.test (__tests__/command_helpers/reviewRule.ts:75:48)

  ● reviewRule › when rule: custom › Errors when plugin doesn not exist

    expect(value).toMatchSnapshot()

    Received value does not match stored snapshot 1.

    - [Error: Plugin not found 'FAKE']
    + [TypeError: Cannot destructure property `print` of 'undefined' or 'null'.]

      90 |         fail('Unknown rule should have errored')
      91 |       } catch (e) {
    > 92 |         expect(e).toMatchSnapshot()
      93 |       }
      94 |     })
      95 |   })

      at __tests__/command_helpers/reviewRule.ts:92:19
          at Generator.throw (<anonymous>)
      at rejected (__tests__/command_helpers/reviewRule.ts:3:1)

  ● reviewRule › when rule: unknown › rule gets added

    expect(value).toMatchSnapshot()

    Received value does not match stored snapshot 1.

    - [Error: Encountered unknown rule]
    + [TypeError: Cannot destructure property `print` of 'undefined' or 'null'.]

      104 |         fail('Unknown rule should have errored')
      105 |       } catch (e) {
    > 106 |         expect(e).toMatchSnapshot()
      107 |       }
      108 |     })
      109 |   })

      at __tests__/command_helpers/reviewRule.ts:106:19
          at Generator.throw (<anonymous>)
      at rejected (__tests__/command_helpers/reviewRule.ts:3:1)

 › 2 snapshot tests failed.
FAIL __tests__/command_helpers/appendSolidaritySettings.ts
  ● Test suite failed to run

    Cannot find module 'gluegun/toolbox' from 'mockContext.ts'

    > 1 | const realThing = require('gluegun/toolbox')
      2 | const realSolidarityContext = require('../../src/extensions/solidarity-extension')
      3 | realSolidarityContext(realThing)
      4 |

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:169:17)
      at Object.<anonymous> (__tests__/__mocks__/mockContext.ts:1:6264)

FAIL __tests__/command_helpers/checkShell.ts
  ● Test suite failed to run

    Cannot find module 'gluegun/toolbox' from 'checkShell.ts'

       7 |  *
       8 |  * @param stdout The stdout to mock return
    >  9 |  * @param status The exit code to mock return (default: 0)
      10 |  */
      11 | const createContext = (stdout: string, status: number = 0) => ({
      12 |   system: {

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:169:17)
      at Object.<anonymous> (__tests__/command_helpers/checkShell.ts:9:16)

PASS __tests__/commands/solidarity.ts
FAIL __tests__/command_helpers/checkRequirementPlugins.ts
  ● Test suite failed to run

    Cannot find module 'gluegun/toolbox' from 'mockContext.ts'

    > 1 | const realThing = require('gluegun/toolbox')
      2 | const realSolidarityContext = require('../../src/extensions/solidarity-extension')
      3 | realSolidarityContext(realThing)
      4 |

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:169:17)
      at Object.<anonymous> (__tests__/__mocks__/mockContext.ts:1:6264)

FAIL __tests__/command_helpers/getSolidaritySettings.ts
  ● Test suite failed to run

    Cannot find module 'gluegun/toolbox' from 'getSolidaritySettings.ts'

       8 |     test('getSolidaritySettings exists', () => expect(getSolidaritySettings).toMatchSnapshot())
       9 |
    > 10 |     test('getSolidaritySettings succeeds', async () => {
      11 |       const resultSettings = getSolidaritySettings(context)
      12 |       // we got an object with requirements defined
      13 |       expect(resultSettings).toMatchObject({ requirements: {} })

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:169:17)
      at Object.<anonymous> (__tests__/command_helpers/getSolidaritySettings.ts:10:17)

FAIL __tests__/command_helpers/getVersion.ts
  ● Test suite failed to run

    Cannot find module 'gluegun/toolbox' from 'getVersion.ts'

       9 | describe('getVersion', () => {
      10 |   beforeAll(() => {
    > 11 |     // These can be slow on CI
      12 |     originalTimeout = jasmine.DEFAULT_TIMEOUT_INTERVAL
      13 |     jasmine.DEFAULT_TIMEOUT_INTERVAL = 60000
      14 |   })

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:169:17)
      at Object.<anonymous> (__tests__/command_helpers/getVersion.ts:11:17)

FAIL __tests__/command_helpers/checkCLIForUpdates.ts
  ● Test suite failed to run

    Cannot find module 'gluegun/toolbox' from 'checkCLIForUpdates.ts'

       8 |   version: '--version',
       9 | }
    > 10 |
      11 | const ruleNoSemver = {
      12 |   rule: 'cli',
      13 |   binary: 'yarn',

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:169:17)
      at Object.<anonymous> (__tests__/command_helpers/checkCLIForUpdates.ts:10:16)

FAIL __tests__/command_helpers/printResults.ts
  ● reviewRule › printResults uses table

    Cannot find module 'gluegun/toolbox' from 'mockContext.ts'

    > 1 | const realThing = require('gluegun/toolbox')
      2 | const realSolidarityContext = require('../../src/extensions/solidarity-extension')
      3 | realSolidarityContext(realThing)
      4 |

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:169:17)
      at Object.<anonymous> (__tests__/__mocks__/mockContext.ts:1:27)

  ● reviewRule › printResults uses table

    TypeError: Cannot destructure property `print` of 'undefined' or 'null'.

      1 | import { SolidarityRunContext, SolidarityReportResults } from '../../types'
      2 | module.exports = (results: SolidarityReportResults, context: SolidarityRunContext): void => {
    > 3 |   const { print, printSeparator } = context
      4 |   const { info } = print
      5 |   const printSpacedTable = (table, header) => {
      6 |     info(`### ${header}\n`)

      at Object.<anonymous>.module.exports (src/extensions/functions/printResults.ts:3:37)
      at Object.test (__tests__/command_helpers/printResults.ts:16:5)

  ● reviewRule › prints custom tables

    Cannot find module 'mockContext' from 'printResults.ts'

       9 |   beforeEach(() => {
      10 |     // fresh mock context
    > 11 |     mockContext = require('mockContext')
      12 |     reportResults = createReport(mockContext)
      13 |   })
      14 |

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:169:17)
      at Object.beforeEach (__tests__/command_helpers/printResults.ts:11:19)

  ● reviewRule › prints custom tables

    TypeError: Cannot read property 'customRules' of undefined

      29 |       table: [['Title'], ['NEW ORLEANS']],
      30 |     }
    > 31 |     reportResults.customRules.push(justHeaderTable)
      32 |     reportResults.customRules.push(customTable)
      33 |     printResults(reportResults, mockContext)
      34 |     expect(flatten(mockContext.print.table.mock.calls)).not.toContain('PARIS')

      at Object.test (__tests__/command_helpers/printResults.ts:31:19)

PASS __tests__/command_helpers/removeNonVersionCharacters.ts
FAIL __tests__/command_helpers/updateVersions.ts
  ● Test suite failed to run

    Cannot find module 'gluegun/toolbox' from 'mockContext.ts'

    > 1 | const realThing = require('gluegun/toolbox')
      2 | const realSolidarityContext = require('../../src/extensions/solidarity-extension')
      3 | realSolidarityContext(realThing)
      4 |

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:169:17)
      at Object.<anonymous> (__tests__/__mocks__/mockContext.ts:1:6264)

FAIL __tests__/commands/create.ts
  ● Test suite failed to run

    Cannot find module 'gluegun/toolbox' from 'mockContext.ts'

    > 1 | const realThing = require('gluegun/toolbox')
      2 | const realSolidarityContext = require('../../src/extensions/solidarity-extension')
      3 | realSolidarityContext(realThing)
      4 |

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:169:17)
      at Object.<anonymous> (__tests__/__mocks__/mockContext.ts:1:6264)

FAIL __tests__/command_helpers/findPluginInfo.ts
  ● Test suite failed to run

    Cannot find module 'gluegun/toolbox' from 'mockContext.ts'

    > 1 | const realThing = require('gluegun/toolbox')
      2 | const realSolidarityContext = require('../../src/extensions/solidarity-extension')
      3 | realSolidarityContext(realThing)
      4 |

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:169:17)
      at Object.<anonymous> (__tests__/__mocks__/mockContext.ts:1:6264)

PASS __tests__/command_helpers/getLineWithVersion.ts
PASS __tests__/command_helpers/skipRule.ts
FAIL __tests__/extensions/extensionCheck.ts
  ● Test suite failed to run

    Cannot find module 'gluegun/toolbox' from 'mockContext.ts'

    > 1 | const realThing = require('gluegun/toolbox')
      2 | const realSolidarityContext = require('../../src/extensions/solidarity-extension')
      3 | realSolidarityContext(realThing)
      4 |

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:169:17)
      at Object.<anonymous> (__tests__/__mocks__/mockContext.ts:1:6264)

PASS __tests__/index.ts
PASS __tests__/commands/help.ts
FAIL __tests__/command_helpers/checkCLI.ts
  ● Test suite failed to run

    Cannot find module 'gluegun/toolbox' from 'checkCLI.ts'

      19 | test('error on missing binary', async () => {
      20 |   expect(await checkCLI(doesNotExistCLI, context)).toBe(`Binary '${doesNotExistCLI.binary}' not found`)
    > 21 | })
      22 |
      23 | test('fine on existing binary', async () => {
      24 |   expect(await checkCLI(alwaysExistCLI, context)).toBe(undefined)

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:169:17)
      at Object.<anonymous> (__tests__/command_helpers/checkCLI.ts:21:17)

PASS __tests__/command_helpers/checkENV.ts
FAIL __tests__/command_helpers/checkDir.ts
  ● Test suite failed to run

    Cannot find module 'gluegun/toolbox' from 'checkDir.ts'

      1 | import checkDir from '../../src/extensions/functions/checkDir'
    > 2 | import * as context from 'gluegun/toolbox'
      3 |
      4 | test('checkDir detects an existing dir', () => {
      5 |   // Check for a known directory

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:169:17)
      at Object.<anonymous> (__tests__/command_helpers/checkDir.ts:2:16)

FAIL __tests__/command_helpers/checkFile.ts
  ● Test suite failed to run

    Cannot find module 'gluegun/toolbox' from 'checkFile.ts'

      1 | import checkFile from '../../src/extensions/functions/checkFile'
    > 2 | import * as context from 'gluegun/toolbox'
      3 |
      4 | test('checkFile detects an existing file', () => {
      5 |   // known file

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:169:17)
      at Object.<anonymous> (__tests__/command_helpers/checkFile.ts:2:16)

PASS __tests__/command_helpers/setSolidaritySettings.ts
FAIL __tests__/command_helpers/solidarityReport.ts
  ● Test suite failed to run

    Cannot find module 'gluegun/toolbox' from 'mockContext.ts'

    > 1 | const realThing = require('gluegun/toolbox')
      2 | const realSolidarityContext = require('../../src/extensions/solidarity-extension')
      3 | realSolidarityContext(realThing)
      4 |

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:169:17)
      at Object.<anonymous> (__tests__/__mocks__/mockContext.ts:1:6264)

PASS __tests__/integration/solidarity-check/check-invalid.ts
FAIL __tests__/commands/report.ts
  ● Test suite failed to run

    Cannot find module 'gluegun/toolbox' from 'mockContext.ts'

    > 1 | const realThing = require('gluegun/toolbox')
      2 | const realSolidarityContext = require('../../src/extensions/solidarity-extension')
      3 | realSolidarityContext(realThing)
      4 |

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:169:17)
      at Object.<anonymous> (__tests__/__mocks__/mockContext.ts:1:6264)

FAIL __tests__/command_helpers/createPlugin.ts
  ● Test suite failed to run

    Cannot find module 'gluegun/toolbox' from 'mockContext.ts'

    > 1 | const realThing = require('gluegun/toolbox')
      2 | const realSolidarityContext = require('../../src/extensions/solidarity-extension')
      3 | realSolidarityContext(realThing)
      4 |

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:169:17)
      at Object.<anonymous> (__tests__/__mocks__/mockContext.ts:1:6264)

PASS __tests__/docs/testDocs.ts
FAIL __tests__/command_helpers/binaryExists.ts
  ● Test suite failed to run

    Cannot find module 'gluegun/toolbox' from 'binaryExists.ts'

       8 |   expect(await binaryExists(doesNotExistCLI, context)).toBe(false)
       9 | })
    > 10 |
      11 | test('true on existing binary', async () => {
      12 |   expect(await binaryExists(alwaysExistCLI, context)).toBe(true)
      13 | })

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:169:17)
      at Object.<anonymous> (__tests__/command_helpers/binaryExists.ts:10:16)

PASS __tests__/schema/validateExampleSchema.ts

Summary of all failing tests
FAIL __tests__/commands/snapshot.ts
  ● Test suite failed to run

    Cannot find module 'gluegun/toolbox' from 'mockContext.ts'

    > 1 | const realThing = require('gluegun/toolbox')
      2 | const realSolidarityContext = require('../../src/extensions/solidarity-extension')
      3 | realSolidarityContext(realThing)
      4 |

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:169:17)
      at Object.<anonymous> (__tests__/__mocks__/mockContext.ts:1:6264)

FAIL __tests__/command_helpers/checkRequirement.ts
  ● Test suite failed to run

    Cannot find module 'gluegun/toolbox' from 'checkRequirement.ts'

      21 | jest.mock('../../src/extensions/functions/checkFile')
      22 | const checkFile = require('../../src/extensions/functions/checkFile')
    > 23 |
      24 | const context = require('gluegun/toolbox')
      25 |
      26 | const badRule = toPairs({

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:169:17)
      at Object.<anonymous> (__tests__/command_helpers/checkRequirement.ts:23:100)

FAIL __tests__/command_helpers/updateRequirement.ts
  ● Test suite failed to run

    Cannot find module 'gluegun/toolbox' from 'mockContext.ts'

    > 1 | const realThing = require('gluegun/toolbox')
      2 | const realSolidarityContext = require('../../src/extensions/solidarity-extension')
      3 | realSolidarityContext(realThing)
      4 |

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:169:17)
      at Object.<anonymous> (__tests__/__mocks__/mockContext.ts:1:6264)

FAIL __tests__/command_helpers/reviewRule.ts
  ● reviewRule › when rule: cli › rule gets added

    Cannot find module 'gluegun/toolbox' from 'mockContext.ts'

    > 1 | const realThing = require('gluegun/toolbox')
      2 | const realSolidarityContext = require('../../src/extensions/solidarity-extension')
      3 | realSolidarityContext(realThing)
      4 |

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:169:17)
      at Object.<anonymous> (__tests__/__mocks__/mockContext.ts:1:27)

  ● reviewRule › when rule: cli › rule gets added

    TypeError: Cannot destructure property `print` of 'undefined' or 'null'.

      18 |   context: SolidarityRunContext
      19 | ) => {
    > 20 |   const { print, solidarity } = context
      21 |   const { colors, checkmark, xmark } = print
      22 |   const prettyBool = (bl: boolean) => (bl ? checkmark + colors.green(' YES') : xmark + colors.red(' NO'))
      23 |   // @ts-ignore - flatten will never get a string bc tail is called first

      at src/extensions/functions/reviewRule.ts:20:33
      at src/extensions/functions/reviewRule.ts:8:1
      at Object.<anonymous>.__awaiter (src/extensions/functions/reviewRule.ts:8:1)
      at Object.<anonymous>.module.exports (src/extensions/functions/reviewRule.ts:18:3)
      at __tests__/command_helpers/reviewRule.ts:18:28
      at __tests__/command_helpers/reviewRule.ts:3:1
      at Object.<anonymous>.__awaiter (__tests__/command_helpers/reviewRule.ts:3:1)
      at Object.test (__tests__/command_helpers/reviewRule.ts:15:29)

  ● reviewRule › when rule: env › rule gets added

    Cannot find module 'mockContext' from 'reviewRule.ts'

       8 |   beforeEach(() => {
       9 |     // fresh mock context
    > 10 |     mockContext = examplePlugin(require('mockContext'))
      11 |     reportResults = createReport(mockContext)
      12 |   })
      13 |

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:169:17)
      at Object.beforeEach (__tests__/command_helpers/reviewRule.ts:10:33)

  ● reviewRule › when rule: env › rule gets added

    TypeError: Cannot destructure property `print` of 'undefined' or 'null'.

      18 |   context: SolidarityRunContext
      19 | ) => {
    > 20 |   const { print, solidarity } = context
      21 |   const { colors, checkmark, xmark } = print
      22 |   const prettyBool = (bl: boolean) => (bl ? checkmark + colors.green(' YES') : xmark + colors.red(' NO'))
      23 |   // @ts-ignore - flatten will never get a string bc tail is called first

      at src/extensions/functions/reviewRule.ts:20:33
      at src/extensions/functions/reviewRule.ts:8:1
      at Object.<anonymous>.__awaiter (src/extensions/functions/reviewRule.ts:8:1)
      at Object.<anonymous>.module.exports (src/extensions/functions/reviewRule.ts:18:3)
      at __tests__/command_helpers/reviewRule.ts:28:28
      at __tests__/command_helpers/reviewRule.ts:3:1
      at Object.<anonymous>.__awaiter (__tests__/command_helpers/reviewRule.ts:3:1)
      at Object.test (__tests__/command_helpers/reviewRule.ts:25:29)

  ● reviewRule › when rule: dir › rule gets added

    Cannot find module 'mockContext' from 'reviewRule.ts'

       8 |   beforeEach(() => {
       9 |     // fresh mock context
    > 10 |     mockContext = examplePlugin(require('mockContext'))
      11 |     reportResults = createReport(mockContext)
      12 |   })
      13 |

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:169:17)
      at Object.beforeEach (__tests__/command_helpers/reviewRule.ts:10:33)

  ● reviewRule › when rule: dir › rule gets added

    TypeError: Cannot destructure property `print` of 'undefined' or 'null'.

      18 |   context: SolidarityRunContext
      19 | ) => {
    > 20 |   const { print, solidarity } = context
      21 |   const { colors, checkmark, xmark } = print
      22 |   const prettyBool = (bl: boolean) => (bl ? checkmark + colors.green(' YES') : xmark + colors.red(' NO'))
      23 |   // @ts-ignore - flatten will never get a string bc tail is called first

      at src/extensions/functions/reviewRule.ts:20:33
      at src/extensions/functions/reviewRule.ts:8:1
      at Object.<anonymous>.__awaiter (src/extensions/functions/reviewRule.ts:8:1)
      at Object.<anonymous>.module.exports (src/extensions/functions/reviewRule.ts:18:3)
      at __tests__/command_helpers/reviewRule.ts:38:28
      at __tests__/command_helpers/reviewRule.ts:3:1
      at Object.<anonymous>.__awaiter (__tests__/command_helpers/reviewRule.ts:3:1)
      at Object.test (__tests__/command_helpers/reviewRule.ts:35:29)

  ● reviewRule › when rule: file › rule gets added

    Cannot find module 'mockContext' from 'reviewRule.ts'

       8 |   beforeEach(() => {
       9 |     // fresh mock context
    > 10 |     mockContext = examplePlugin(require('mockContext'))
      11 |     reportResults = createReport(mockContext)
      12 |   })
      13 |

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:169:17)
      at Object.beforeEach (__tests__/command_helpers/reviewRule.ts:10:33)

  ● reviewRule › when rule: file › rule gets added

    TypeError: Cannot destructure property `print` of 'undefined' or 'null'.

      18 |   context: SolidarityRunContext
      19 | ) => {
    > 20 |   const { print, solidarity } = context
      21 |   const { colors, checkmark, xmark } = print
      22 |   const prettyBool = (bl: boolean) => (bl ? checkmark + colors.green(' YES') : xmark + colors.red(' NO'))
      23 |   // @ts-ignore - flatten will never get a string bc tail is called first

      at src/extensions/functions/reviewRule.ts:20:33
      at src/extensions/functions/reviewRule.ts:8:1
      at Object.<anonymous>.__awaiter (src/extensions/functions/reviewRule.ts:8:1)
      at Object.<anonymous>.module.exports (src/extensions/functions/reviewRule.ts:18:3)
      at __tests__/command_helpers/reviewRule.ts:48:28
      at __tests__/command_helpers/reviewRule.ts:3:1
      at Object.<anonymous>.__awaiter (__tests__/command_helpers/reviewRule.ts:3:1)
      at Object.test (__tests__/command_helpers/reviewRule.ts:45:29)

  ● reviewRule › when rule: shell › rule gets added

    Cannot find module 'mockContext' from 'reviewRule.ts'

       8 |   beforeEach(() => {
       9 |     // fresh mock context
    > 10 |     mockContext = examplePlugin(require('mockContext'))
      11 |     reportResults = createReport(mockContext)
      12 |   })
      13 |

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:169:17)
      at Object.beforeEach (__tests__/command_helpers/reviewRule.ts:10:33)

  ● reviewRule › when rule: shell › rule gets added

    TypeError: Cannot destructure property `print` of 'undefined' or 'null'.

      18 |   context: SolidarityRunContext
      19 | ) => {
    > 20 |   const { print, solidarity } = context
      21 |   const { colors, checkmark, xmark } = print
      22 |   const prettyBool = (bl: boolean) => (bl ? checkmark + colors.green(' YES') : xmark + colors.red(' NO'))
      23 |   // @ts-ignore - flatten will never get a string bc tail is called first

      at src/extensions/functions/reviewRule.ts:20:33
      at src/extensions/functions/reviewRule.ts:8:1
      at Object.<anonymous>.__awaiter (src/extensions/functions/reviewRule.ts:8:1)
      at Object.<anonymous>.module.exports (src/extensions/functions/reviewRule.ts:18:3)
      at __tests__/command_helpers/reviewRule.ts:58:28
      at __tests__/command_helpers/reviewRule.ts:3:1
      at Object.<anonymous>.__awaiter (__tests__/command_helpers/reviewRule.ts:3:1)
      at Object.test (__tests__/command_helpers/reviewRule.ts:55:29)

  ● reviewRule › when rule: custom › rule gets added

    Cannot find module 'mockContext' from 'reviewRule.ts'

       8 |   beforeEach(() => {
       9 |     // fresh mock context
    > 10 |     mockContext = examplePlugin(require('mockContext'))
      11 |     reportResults = createReport(mockContext)
      12 |   })
      13 |

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:169:17)
      at Object.beforeEach (__tests__/command_helpers/reviewRule.ts:10:33)

  ● reviewRule › when rule: custom › rule gets added

    TypeError: Cannot read property 'cliRules' of undefined

      67 |       const rule = ['CUSTOM', [{ rule: 'custom', plugin: 'Example Plugin', name: 'checkThing' }]]
      68 |
    > 69 |       expect(reportResults.cliRules.length).toBe(1)
      70 |       const result = await reviewRule(rule, reportResults, mockContext)
      71 |       // CUSTOM rule (which adds CLI report) was added
      72 |       expect(reportResults.cliRules.length).toBe(2)

      at __tests__/command_helpers/reviewRule.ts:69:28
      at __tests__/command_helpers/reviewRule.ts:3:1
      at Object.<anonymous>.__awaiter (__tests__/command_helpers/reviewRule.ts:3:1)
      at Object.test (__tests__/command_helpers/reviewRule.ts:66:29)

  ● reviewRule › when rule: custom › does nothing when no report exists

    Cannot find module 'mockContext' from 'reviewRule.ts'

       8 |   beforeEach(() => {
       9 |     // fresh mock context
    > 10 |     mockContext = examplePlugin(require('mockContext'))
      11 |     reportResults = createReport(mockContext)
      12 |   })
      13 |

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:169:17)
      at Object.beforeEach (__tests__/command_helpers/reviewRule.ts:10:33)

  ● reviewRule › when rule: custom › does nothing when no report exists

    TypeError: Cannot read property 'cliRules' of undefined

      76 |       const rule = ['CUSTOM', [{ rule: 'custom', plugin: 'Example Plugin', name: 'checkSecondThing' }]]
      77 |
    > 78 |       expect(reportResults.cliRules.length).toBe(1)
      79 |       const result = await reviewRule(rule, reportResults, mockContext)
      80 |       // should not change rules
      81 |       expect(reportResults.cliRules.length).toBe(1)

      at __tests__/command_helpers/reviewRule.ts:78:28
      at __tests__/command_helpers/reviewRule.ts:3:1
      at Object.<anonymous>.__awaiter (__tests__/command_helpers/reviewRule.ts:3:1)
      at Object.test (__tests__/command_helpers/reviewRule.ts:75:48)

  ● reviewRule › when rule: custom › Errors when plugin doesn not exist

    expect(value).toMatchSnapshot()

    Received value does not match stored snapshot 1.

    - [Error: Plugin not found 'FAKE']
    + [TypeError: Cannot destructure property `print` of 'undefined' or 'null'.]

      90 |         fail('Unknown rule should have errored')
      91 |       } catch (e) {
    > 92 |         expect(e).toMatchSnapshot()
      93 |       }
      94 |     })
      95 |   })

      at __tests__/command_helpers/reviewRule.ts:92:19
          at Generator.throw (<anonymous>)
      at rejected (__tests__/command_helpers/reviewRule.ts:3:1)

  ● reviewRule › when rule: unknown › rule gets added

    expect(value).toMatchSnapshot()

    Received value does not match stored snapshot 1.

    - [Error: Encountered unknown rule]
    + [TypeError: Cannot destructure property `print` of 'undefined' or 'null'.]

      104 |         fail('Unknown rule should have errored')
      105 |       } catch (e) {
    > 106 |         expect(e).toMatchSnapshot()
      107 |       }
      108 |     })
      109 |   })

      at __tests__/command_helpers/reviewRule.ts:106:19
          at Generator.throw (<anonymous>)
      at rejected (__tests__/command_helpers/reviewRule.ts:3:1)

FAIL __tests__/command_helpers/appendSolidaritySettings.ts
  ● Test suite failed to run

    Cannot find module 'gluegun/toolbox' from 'mockContext.ts'

    > 1 | const realThing = require('gluegun/toolbox')
      2 | const realSolidarityContext = require('../../src/extensions/solidarity-extension')
      3 | realSolidarityContext(realThing)
      4 |

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:169:17)
      at Object.<anonymous> (__tests__/__mocks__/mockContext.ts:1:6264)

FAIL __tests__/command_helpers/checkShell.ts
  ● Test suite failed to run

    Cannot find module 'gluegun/toolbox' from 'checkShell.ts'

       7 |  *
       8 |  * @param stdout The stdout to mock return
    >  9 |  * @param status The exit code to mock return (default: 0)
      10 |  */
      11 | const createContext = (stdout: string, status: number = 0) => ({
      12 |   system: {

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:169:17)
      at Object.<anonymous> (__tests__/command_helpers/checkShell.ts:9:16)

FAIL __tests__/command_helpers/checkRequirementPlugins.ts
  ● Test suite failed to run

    Cannot find module 'gluegun/toolbox' from 'mockContext.ts'

    > 1 | const realThing = require('gluegun/toolbox')
      2 | const realSolidarityContext = require('../../src/extensions/solidarity-extension')
      3 | realSolidarityContext(realThing)
      4 |

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:169:17)
      at Object.<anonymous> (__tests__/__mocks__/mockContext.ts:1:6264)

FAIL __tests__/command_helpers/getSolidaritySettings.ts
  ● Test suite failed to run

    Cannot find module 'gluegun/toolbox' from 'getSolidaritySettings.ts'

       8 |     test('getSolidaritySettings exists', () => expect(getSolidaritySettings).toMatchSnapshot())
       9 |
    > 10 |     test('getSolidaritySettings succeeds', async () => {
      11 |       const resultSettings = getSolidaritySettings(context)
      12 |       // we got an object with requirements defined
      13 |       expect(resultSettings).toMatchObject({ requirements: {} })

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:169:17)
      at Object.<anonymous> (__tests__/command_helpers/getSolidaritySettings.ts:10:17)

FAIL __tests__/command_helpers/getVersion.ts
  ● Test suite failed to run

    Cannot find module 'gluegun/toolbox' from 'getVersion.ts'

       9 | describe('getVersion', () => {
      10 |   beforeAll(() => {
    > 11 |     // These can be slow on CI
      12 |     originalTimeout = jasmine.DEFAULT_TIMEOUT_INTERVAL
      13 |     jasmine.DEFAULT_TIMEOUT_INTERVAL = 60000
      14 |   })

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:169:17)
      at Object.<anonymous> (__tests__/command_helpers/getVersion.ts:11:17)

FAIL __tests__/command_helpers/checkCLIForUpdates.ts
  ● Test suite failed to run

    Cannot find module 'gluegun/toolbox' from 'checkCLIForUpdates.ts'

       8 |   version: '--version',
       9 | }
    > 10 |
      11 | const ruleNoSemver = {
      12 |   rule: 'cli',
      13 |   binary: 'yarn',

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:169:17)
      at Object.<anonymous> (__tests__/command_helpers/checkCLIForUpdates.ts:10:16)

FAIL __tests__/command_helpers/printResults.ts
  ● reviewRule › printResults uses table

    Cannot find module 'gluegun/toolbox' from 'mockContext.ts'

    > 1 | const realThing = require('gluegun/toolbox')
      2 | const realSolidarityContext = require('../../src/extensions/solidarity-extension')
      3 | realSolidarityContext(realThing)
      4 |

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:169:17)
      at Object.<anonymous> (__tests__/__mocks__/mockContext.ts:1:27)

  ● reviewRule › printResults uses table

    TypeError: Cannot destructure property `print` of 'undefined' or 'null'.

      1 | import { SolidarityRunContext, SolidarityReportResults } from '../../types'
      2 | module.exports = (results: SolidarityReportResults, context: SolidarityRunContext): void => {
    > 3 |   const { print, printSeparator } = context
      4 |   const { info } = print
      5 |   const printSpacedTable = (table, header) => {
      6 |     info(`### ${header}\n`)

      at Object.<anonymous>.module.exports (src/extensions/functions/printResults.ts:3:37)
      at Object.test (__tests__/command_helpers/printResults.ts:16:5)

  ● reviewRule › prints custom tables

    Cannot find module 'mockContext' from 'printResults.ts'

       9 |   beforeEach(() => {
      10 |     // fresh mock context
    > 11 |     mockContext = require('mockContext')
      12 |     reportResults = createReport(mockContext)
      13 |   })
      14 |

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:169:17)
      at Object.beforeEach (__tests__/command_helpers/printResults.ts:11:19)

  ● reviewRule › prints custom tables

    TypeError: Cannot read property 'customRules' of undefined

      29 |       table: [['Title'], ['NEW ORLEANS']],
      30 |     }
    > 31 |     reportResults.customRules.push(justHeaderTable)
      32 |     reportResults.customRules.push(customTable)
      33 |     printResults(reportResults, mockContext)
      34 |     expect(flatten(mockContext.print.table.mock.calls)).not.toContain('PARIS')

      at Object.test (__tests__/command_helpers/printResults.ts:31:19)

FAIL __tests__/command_helpers/updateVersions.ts
  ● Test suite failed to run

    Cannot find module 'gluegun/toolbox' from 'mockContext.ts'

    > 1 | const realThing = require('gluegun/toolbox')
      2 | const realSolidarityContext = require('../../src/extensions/solidarity-extension')
      3 | realSolidarityContext(realThing)
      4 |

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:1elpers/checkCLI.ts
  ● Test suite failed to run

    Cannot find module 'gluegun/toolbox' from 'checkCLI.ts'

      19 | test('error on missing binary', async () => {
      20 |   expect(await checkCLI(doesNotExistCLI, context)).toBe(`Binary '${doesNotExistCLI.binary}' not found`)
    > 21 | })
      22 |
      23 | test('fine on existing binary', async () => {
      24 |   expect(await checkCLI(alwaysExistCLI, context)).toBe(undefined)

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:169:17)
      at Object.<anonymous> (__tests__/command_helpers/checkCLI.ts:21:17)

FAIL __tests__/command_helpers/checkDir.ts
  ● Test suite failed to run

    Cannot find module 'gluegun/toolbox' from 'checkDir.ts'

      1 | import checkDir from '../../src/extensions/functions/checkDir'
    > 2 | import * as context from 'gluegun/toolbox'
      3 |
      4 | test('checkDir detects an existing dir', () => {
      5 |   // Check for a known directory

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:169:17)
      at Object.<anonymous> (__tests__/command_helpers/checkDir.ts:2:16)

FAIL __tests__/command_helpers/checkFile.ts
  ● Test suite failed to run

    Cannot find module 'gluegun/toolbox' from 'checkFile.ts'

      1 | import checkFile from '../../src/extensions/functions/checkFile'
    > 2 | import * as context from 'gluegun/toolbox'
      3 |
      4 | test('checkFile detects an existing file', () => {
      5 |   // known file

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:169:17)
      at Object.<anonymous> (__tests__/command_helpers/checkFile.ts:2:16)

FAIL __tests__/command_helpers/solidarityReport.ts
  ● Test suite failed to run

    Cannot find module 'gluegun/toolbox' from 'mockContext.ts'

    > 1 | const realThing = require('gluegun/toolbox')
      2 | const realSolidarityContext = require('../../src/extensions/solidarity-extension')
      3 | realSolidarityContext(realThing)
      4 |

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:169:17)
      at Object.<anonymous> (__tests__/__mocks__/mockContext.ts:1:6264)

FAIL __tests__/commands/report.ts
  ● Test suite failed to run

    Cannot find module 'gluegun/toolbox' from 'mockContext.ts'

    > 1 | const realThing = require('gluegun/toolbox')
      2 | const realSolidarityContext = require('../../src/extensions/solidarity-extension')
      3 | realSolidarityContext(realThing)
      4 |

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:169:17)
      at Object.<anonymous> (__tests__/__mocks__/mockContext.ts:1:6264)

FAIL __tests__/command_helpers/createPlugin.ts
  ● Test suite failed to run

    Cannot find module 'gluegun/toolbox' from 'mockContext.ts'

    > 1 | const realThing = require('gluegun/toolbox')
      2 | const realSolidarityContext = require('../../src/extensions/solidarity-extension')
      3 | realSolidarityContext(realThing)
      4 |

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:169:17)
      at Object.<anonymous> (__tests__/__mocks__/mockContext.ts:1:6264)

FAIL __tests__/command_helpers/binaryExists.ts
  ● Test suite failed to run

    Cannot find module 'gluegun/toolbox' from 'binaryExists.ts'

       8 |   expect(await binaryExists(doesNotExistCLI, context)).toBe(false)
       9 | })
    > 10 |
      11 | test('true on existing binary', async () => {
      12 |   expect(await binaryExists(alwaysExistCLI, context)).toBe(true)
      13 | })

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:169:17)
      at Object.<anonymous> (__tests__/command_helpers/binaryExists.ts:10:16)

Snapshot Summary
 › 2 snapshot tests failed in 1 test suite. Inspect your code changes or run `npm run test:ci -- -u` to update them.

Test Suites: 22 failed, 11 passed, 33 total
Tests:       11 failed, 31 passed, 42 total
Snapshots:   2 failed, 7 passed, 9 total
Time:        8.874s
Ran all test suites.
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR<EMAIL_ADDRESS>test:ci: `jest --ci --runInBand && yarn test:extras`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>test:ci script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/travis/.npm/_logs/2018-02-26T04_49_39_095Z-debug.log

yarn danger ci

yarn run v1.3.2
$ /home/travis/build/infinitered/solidarity/node_modules/.bin/danger ci
You may have updated from Danger 2.x -> 3.x without updating from `danger` to `danger ci`.
Found only warnings, not failing the build.
Done in 2.62s.

Node.js: 8

npm run test:ci

><EMAIL_ADDRESS>test:ci /home/travis/build/infinitered/solidarity
> jest --ci --runInBand && yarn test:extras

FAIL __tests__/commands/snapshot.ts
  ● Test suite failed to run

    Cannot find module 'gluegun/toolbox' from 'mockContext.ts'

    > 1 | const realThing = require('gluegun/toolbox')
      2 | const realSolidarityContext = require('../../src/extensions/solidarity-extension')
      3 | realSolidarityContext(realThing)
      4 |

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:169:17)
      at Object.<anonymous> (__tests__/__mocks__/mockContext.ts:1:6264)

FAIL __tests__/command_helpers/checkRequirement.ts
  ● Test suite failed to run

    Cannot find module 'gluegun/toolbox' from 'checkRequirement.ts'

      21 | jest.mock('../../src/extensions/functions/checkFile')
      22 | const checkFile = require('../../src/extensions/functions/checkFile')
    > 23 |
      24 | const context = require('gluegun/toolbox')
      25 |
      26 | const badRule = toPairs({

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:169:17)
      at Object.<anonymous> (__tests__/command_helpers/checkRequirement.ts:23:100)

FAIL __tests__/command_helpers/updateRequirement.ts
  ● Test suite failed to run

    Cannot find module 'gluegun/toolbox' from 'mockContext.ts'

    > 1 | const realThing = require('gluegun/toolbox')
      2 | const realSolidarityContext = require('../../src/extensions/solidarity-extension')
      3 | realSolidarityContext(realThing)
      4 |

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:169:17)
      at Object.<anonymous> (__tests__/__mocks__/mockContext.ts:1:6264)

FAIL __tests__/command_helpers/reviewRule.ts
  ● reviewRule › when rule: cli › rule gets added

    Cannot find module 'gluegun/toolbox' from 'mockContext.ts'

    > 1 | const realThing = require('gluegun/toolbox')
      2 | const realSolidarityContext = require('../../src/extensions/solidarity-extension')
      3 | realSolidarityContext(realThing)
      4 |

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:169:17)
      at Object.<anonymous> (__tests__/__mocks__/mockContext.ts:1:27)

  ● reviewRule › when rule: cli › rule gets added

    TypeError: Cannot destructure property `print` of 'undefined' or 'null'.

      18 |   context: SolidarityRunContext
      19 | ) => {
    > 20 |   const { print, solidarity } = context
      21 |   const { colors, checkmark, xmark } = print
      22 |   const prettyBool = (bl: boolean) => (bl ? checkmark + colors.green(' YES') : xmark + colors.red(' NO'))
      23 |   // @ts-ignore - flatten will never get a string bc tail is called first

      at src/extensions/functions/reviewRule.ts:20:33
      at src/extensions/functions/reviewRule.ts:8:1
      at Object.<anonymous>.__awaiter (src/extensions/functions/reviewRule.ts:8:1)
      at Object.<anonymous>.module.exports (src/extensions/functions/reviewRule.ts:18:3)
      at __tests__/command_helpers/reviewRule.ts:18:28
      at __tests__/command_helpers/reviewRule.ts:3:1
      at Object.<anonymous>.__awaiter (__tests__/command_helpers/reviewRule.ts:3:1)
      at Object.test (__tests__/command_helpers/reviewRule.ts:15:29)

  ● reviewRule › when rule: env › rule gets added

    Cannot find module 'mockContext' from 'reviewRule.ts'

       8 |   beforeEach(() => {
       9 |     // fresh mock context
    > 10 |     mockContext = examplePlugin(require('mockContext'))
      11 |     reportResults = createReport(mockContext)
      12 |   })
      13 |

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:169:17)
      at Object.beforeEach (__tests__/command_helpers/reviewRule.ts:10:33)

  ● reviewRule › when rule: env › rule gets added

    TypeError: Cannot destructure property `print` of 'undefined' or 'null'.

      18 |   context: SolidarityRunContext
      19 | ) => {
    > 20 |   const { print, solidarity } = context
      21 |   const { colors, checkmark, xmark } = print
      22 |   const prettyBool = (bl: boolean) => (bl ? checkmark + colors.green(' YES') : xmark + colors.red(' NO'))
      23 |   // @ts-ignore - flatten will never get a string bc tail is called first

      at src/extensions/functions/reviewRule.ts:20:33
      at src/extensions/functions/reviewRule.ts:8:1
      at Object.<anonymous>.__awaiter (src/extensions/functions/reviewRule.ts:8:1)
      at Object.<anonymous>.module.exports (src/extensions/functions/reviewRule.ts:18:3)
      at __tests__/command_helpers/reviewRule.ts:28:28
      at __tests__/command_helpers/reviewRule.ts:3:1
      at Object.<anonymous>.__awaiter (__tests__/command_helpers/reviewRule.ts:3:1)
      at Object.test (__tests__/command_helpers/reviewRule.ts:25:29)

  ● reviewRule › when rule: dir › rule gets added

    Cannot find module 'mockContext' from 'reviewRule.ts'

       8 |   beforeEach(() => {
       9 |     // fresh mock context
    > 10 |     mockContext = examplePlugin(require('mockContext'))
      11 |     reportResults = createReport(mockContext)
      12 |   })
      13 |

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:169:17)
      at Object.beforeEach (__tests__/command_helpers/reviewRule.ts:10:33)

  ● reviewRule › when rule: dir › rule gets added

    TypeError: Cannot destructure property `print` of 'undefined' or 'null'.

      18 |   context: SolidarityRunContext
      19 | ) => {
    > 20 |   const { print, solidarity } = context
      21 |   const { colors, checkmark, xmark } = print
      22 |   const prettyBool = (bl: boolean) => (bl ? checkmark + colors.green(' YES') : xmark + colors.red(' NO'))
      23 |   // @ts-ignore - flatten will never get a string bc tail is called first

      at src/extensions/functions/reviewRule.ts:20:33
      at src/extensions/functions/reviewRule.ts:8:1
      at Object.<anonymous>.__awaiter (src/extensions/functions/reviewRule.ts:8:1)
      at Object.<anonymous>.module.exports (src/extensions/functions/reviewRule.ts:18:3)
      at __tests__/command_helpers/reviewRule.ts:38:28
      at __tests__/command_helpers/reviewRule.ts:3:1
      at Object.<anonymous>.__awaiter (__tests__/command_helpers/reviewRule.ts:3:1)
      at Object.test (__tests__/command_helpers/reviewRule.ts:35:29)

  ● reviewRule › when rule: file › rule gets added

    Cannot find module 'mockContext' from 'reviewRule.ts'

       8 |   beforeEach(() => {
       9 |     // fresh mock context
    > 10 |     mockContext = examplePlugin(require('mockContext'))
      11 |     reportResults = createReport(mockContext)
      12 |   })
      13 |

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:169:17)
      at Object.beforeEach (__tests__/command_helpers/reviewRule.ts:10:33)

  ● reviewRule › when rule: file › rule gets added

    TypeError: Cannot destructure property `print` of 'undefined' or 'null'.

      18 |   context: SolidarityRunContext
      19 | ) => {
    > 20 |   const { print, solidarity } = context
      21 |   const { colors, checkmark, xmark } = print
      22 |   const prettyBool = (bl: boolean) => (bl ? checkmark + colors.green(' YES') : xmark + colors.red(' NO'))
      23 |   // @ts-ignore - flatten will never get a string bc tail is called first

      at src/extensions/functions/reviewRule.ts:20:33
      at src/extensions/functions/reviewRule.ts:8:1
      at Object.<anonymous>.__awaiter (src/extensions/functions/reviewRule.ts:8:1)
      at Object.<anonymous>.module.exports (src/extensions/functions/reviewRule.ts:18:3)
      at __tests__/command_helpers/reviewRule.ts:48:28
      at __tests__/command_helpers/reviewRule.ts:3:1
      at Object.<anonymous>.__awaiter (__tests__/command_helpers/reviewRule.ts:3:1)
      at Object.test (__tests__/command_helpers/reviewRule.ts:45:29)

  ● reviewRule › when rule: shell › rule gets added

    Cannot find module 'mockContext' from 'reviewRule.ts'

       8 |   beforeEach(() => {
       9 |     // fresh mock context
    > 10 |     mockContext = examplePlugin(require('mockContext'))
      11 |     reportResults = createReport(mockContext)
      12 |   })
      13 |

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:169:17)
      at Object.beforeEach (__tests__/command_helpers/reviewRule.ts:10:33)

  ● reviewRule › when rule: shell › rule gets added

    TypeError: Cannot destructure property `print` of 'undefined' or 'null'.

      18 |   context: SolidarityRunContext
      19 | ) => {
    > 20 |   const { print, solidarity } = context
      21 |   const { colors, checkmark, xmark } = print
      22 |   const prettyBool = (bl: boolean) => (bl ? checkmark + colors.green(' YES') : xmark + colors.red(' NO'))
      23 |   // @ts-ignore - flatten will never get a string bc tail is called first

      at src/extensions/functions/reviewRule.ts:20:33
      at src/extensions/functions/reviewRule.ts:8:1
      at Object.<anonymous>.__awaiter (src/extensions/functions/reviewRule.ts:8:1)
      at Object.<anonymous>.module.exports (src/extensions/functions/reviewRule.ts:18:3)
      at __tests__/command_helpers/reviewRule.ts:58:28
      at __tests__/command_helpers/reviewRule.ts:3:1
      at Object.<anonymous>.__awaiter (__tests__/command_helpers/reviewRule.ts:3:1)
      at Object.test (__tests__/command_helpers/reviewRule.ts:55:29)

  ● reviewRule › when rule: custom › rule gets added

    Cannot find module 'mockContext' from 'reviewRule.ts'

       8 |   beforeEach(() => {
       9 |     // fresh mock context
    > 10 |     mockContext = examplePlugin(require('mockContext'))
      11 |     reportResults = createReport(mockContext)
      12 |   })
      13 |

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:169:17)
      at Object.beforeEach (__tests__/command_helpers/reviewRule.ts:10:33)

  ● reviewRule › when rule: custom › rule gets added

    TypeError: Cannot read property 'cliRules' of undefined

      67 |       const rule = ['CUSTOM', [{ rule: 'custom', plugin: 'Example Plugin', name: 'checkThing' }]]
      68 |
    > 69 |       expect(reportResults.cliRules.length).toBe(1)
      70 |       const result = await reviewRule(rule, reportResults, mockContext)
      71 |       // CUSTOM rule (which adds CLI report) was added
      72 |       expect(reportResults.cliRules.length).toBe(2)

      at __tests__/command_helpers/reviewRule.ts:69:28
      at __tests__/command_helpers/reviewRule.ts:3:1
      at Object.<anonymous>.__awaiter (__tests__/command_helpers/reviewRule.ts:3:1)
      at Object.test (__tests__/command_helpers/reviewRule.ts:66:29)

  ● reviewRule › when rule: custom › does nothing when no report exists

    Cannot find module 'mockContext' from 'reviewRule.ts'

       8 |   beforeEach(() => {
       9 |     // fresh mock context
    > 10 |     mockContext = examplePlugin(require('mockContext'))
      11 |     reportResults = createReport(mockContext)
      12 |   })
      13 |

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:169:17)
      at Object.beforeEach (__tests__/command_helpers/reviewRule.ts:10:33)

  ● reviewRule › when rule: custom › does nothing when no report exists

    TypeError: Cannot read property 'cliRules' of undefined

      76 |       const rule = ['CUSTOM', [{ rule: 'custom', plugin: 'Example Plugin', name: 'checkSecondThing' }]]
      77 |
    > 78 |       expect(reportResults.cliRules.length).toBe(1)
      79 |       const result = await reviewRule(rule, reportResults, mockContext)
      80 |       // should not change rules
      81 |       expect(reportResults.cliRules.length).toBe(1)

      at __tests__/command_helpers/reviewRule.ts:78:28
      at __tests__/command_helpers/reviewRule.ts:3:1
      at Object.<anonymous>.__awaiter (__tests__/command_helpers/reviewRule.ts:3:1)
      at Object.test (__tests__/command_helpers/reviewRule.ts:75:48)

  ● reviewRule › when rule: custom › Errors when plugin doesn not exist

    expect(value).toMatchSnapshot()

    Received value does not match stored snapshot 1.

    - [Error: Plugin not found 'FAKE']
    + [TypeError: Cannot destructure property `print` of 'undefined' or 'null'.]

      90 |         fail('Unknown rule should have errored')
      91 |       } catch (e) {
    > 92 |         expect(e).toMatchSnapshot()
      93 |       }
      94 |     })
      95 |   })

      at __tests__/command_helpers/reviewRule.ts:92:19
          at Generator.throw (<anonymous>)
      at rejected (__tests__/command_helpers/reviewRule.ts:3:1)

  ● reviewRule › when rule: unknown › rule gets added

    expect(value).toMatchSnapshot()

    Received value does not match stored snapshot 1.

    - [Error: Encountered unknown rule]
    + [TypeError: Cannot destructure property `print` of 'undefined' or 'null'.]

      104 |         fail('Unknown rule should have errored')
      105 |       } catch (e) {
    > 106 |         expect(e).toMatchSnapshot()
      107 |       }
      108 |     })
      109 |   })

      at __tests__/command_helpers/reviewRule.ts:106:19
          at Generator.throw (<anonymous>)
      at rejected (__tests__/command_helpers/reviewRule.ts:3:1)

 › 2 snapshot tests failed.
FAIL __tests__/command_helpers/appendSolidaritySettings.ts
  ● Test suite failed to run

    Cannot find module 'gluegun/toolbox' from 'mockContext.ts'

    > 1 | const realThing = require('gluegun/toolbox')
      2 | const realSolidarityContext = require('../../src/extensions/solidarity-extension')
      3 | realSolidarityContext(realThing)
      4 |

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:169:17)
      at Object.<anonymous> (__tests__/__mocks__/mockContext.ts:1:6264)

FAIL __tests__/command_helpers/checkShell.ts
  ● Test suite failed to run

    Cannot find module 'gluegun/toolbox' from 'checkShell.ts'

       7 |  *
       8 |  * @param stdout The stdout to mock return
    >  9 |  * @param status The exit code to mock return (default: 0)
      10 |  */
      11 | const createContext = (stdout: string, status: number = 0) => ({
      12 |   system: {

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:169:17)
      at Object.<anonymous> (__tests__/command_helpers/checkShell.ts:9:16)

PASS __tests__/commands/solidarity.ts
FAIL __tests__/command_helpers/checkRequirementPlugins.ts
  ● Test suite failed to run

    Cannot find module 'gluegun/toolbox' from 'mockContext.ts'

    > 1 | const realThing = require('gluegun/toolbox')
      2 | const realSolidarityContext = require('../../src/extensions/solidarity-extension')
      3 | realSolidarityContext(realThing)
      4 |

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:169:17)
      at Object.<anonymous> (__tests__/__mocks__/mockContext.ts:1:6264)

FAIL __tests__/command_helpers/getSolidaritySettings.ts
  ● Test suite failed to run

    Cannot find module 'gluegun/toolbox' from 'getSolidaritySettings.ts'

       8 |     test('getSolidaritySettings exists', () => expect(getSolidaritySettings).toMatchSnapshot())
       9 |
    > 10 |     test('getSolidaritySettings succeeds', async () => {
      11 |       const resultSettings = getSolidaritySettings(context)
      12 |       // we got an object with requirements defined
      13 |       expect(resultSettings).toMatchObject({ requirements: {} })

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:169:17)
      at Object.<anonymous> (__tests__/command_helpers/getSolidaritySettings.ts:10:17)

FAIL __tests__/command_helpers/getVersion.ts
  ● Test suite failed to run

    Cannot find module 'gluegun/toolbox' from 'getVersion.ts'

       9 | describe('getVersion', () => {
      10 |   beforeAll(() => {
    > 11 |     // These can be slow on CI
      12 |     originalTimeout = jasmine.DEFAULT_TIMEOUT_INTERVAL
      13 |     jasmine.DEFAULT_TIMEOUT_INTERVAL = 60000
      14 |   })

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:169:17)
      at Object.<anonymous> (__tests__/command_helpers/getVersion.ts:11:17)

FAIL __tests__/command_helpers/checkCLIForUpdates.ts
  ● Test suite failed to run

    Cannot find module 'gluegun/toolbox' from 'checkCLIForUpdates.ts'

       8 |   version: '--version',
       9 | }
    > 10 |
      11 | const ruleNoSemver = {
      12 |   rule: 'cli',
      13 |   binary: 'yarn',

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:169:17)
      at Object.<anonymous> (__tests__/command_helpers/checkCLIForUpdates.ts:10:16)

FAIL __tests__/command_helpers/printResults.ts
  ● reviewRule › printResults uses table

    Cannot find module 'gluegun/toolbox' from 'mockContext.ts'

    > 1 | const realThing = require('gluegun/toolbox')
      2 | const realSolidarityContext = require('../../src/extensions/solidarity-extension')
      3 | realSolidarityContext(realThing)
      4 |

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:169:17)
      at Object.<anonymous> (__tests__/__mocks__/mockContext.ts:1:27)

  ● reviewRule › printResults uses table

    TypeError: Cannot destructure property `print` of 'undefined' or 'null'.

      1 | import { SolidarityRunContext, SolidarityReportResults } from '../../types'
      2 | module.exports = (results: SolidarityReportResults, context: SolidarityRunContext): void => {
    > 3 |   const { print, printSeparator } = context
      4 |   const { info } = print
      5 |   const printSpacedTable = (table, header) => {
      6 |     info(`### ${header}\n`)

      at Object.<anonymous>.module.exports (src/extensions/functions/printResults.ts:3:37)
      at Object.test (__tests__/command_helpers/printResults.ts:16:5)

  ● reviewRule › prints custom tables

    Cannot find module 'mockContext' from 'printResults.ts'

       9 |   beforeEach(() => {
      10 |     // fresh mock context
    > 11 |     mockContext = require('mockContext')
      12 |     reportResults = createReport(mockContext)
      13 |   })
      14 |

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:169:17)
      at Object.beforeEach (__tests__/command_helpers/printResults.ts:11:19)

  ● reviewRule › prints custom tables

    TypeError: Cannot read property 'customRules' of undefined

      29 |       table: [['Title'], ['NEW ORLEANS']],
      30 |     }
    > 31 |     reportResults.customRules.push(justHeaderTable)
      32 |     reportResults.customRules.push(customTable)
      33 |     printResults(reportResults, mockContext)
      34 |     expect(flatten(mockContext.print.table.mock.calls)).not.toContain('PARIS')

      at Object.test (__tests__/command_helpers/printResults.ts:31:19)

PASS __tests__/command_helpers/removeNonVersionCharacters.ts
FAIL __tests__/command_helpers/updateVersions.ts
  ● Test suite failed to run

    Cannot find module 'gluegun/toolbox' from 'mockContext.ts'

    > 1 | const realThing = require('gluegun/toolbox')
      2 | const realSolidarityContext = require('../../src/extensions/solidarity-extension')
      3 | realSolidarityContext(realThing)
      4 |

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:169:17)
      at Object.<anonymous> (__tests__/__mocks__/mockContext.ts:1:6264)

FAIL __tests__/commands/create.ts
  ● Test suite failed to run

    Cannot find module 'gluegun/toolbox' from 'mockContext.ts'

    > 1 | const realThing = require('gluegun/toolbox')
      2 | const realSolidarityContext = require('../../src/extensions/solidarity-extension')
      3 | realSolidarityContext(realThing)
      4 |

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:169:17)
      at Object.<anonymous> (__tests__/__mocks__/mockContext.ts:1:6264)

FAIL __tests__/command_helpers/findPluginInfo.ts
  ● Test suite failed to run

    Cannot find module 'gluegun/toolbox' from 'mockContext.ts'

    > 1 | const realThing = require('gluegun/toolbox')
      2 | const realSolidarityContext = require('../../src/extensions/solidarity-extension')
      3 | realSolidarityContext(realThing)
      4 |

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:169:17)
      at Object.<anonymous> (__tests__/__mocks__/mockContext.ts:1:6264)

PASS __tests__/command_helpers/getLineWithVersion.ts
PASS __tests__/command_helpers/skipRule.ts
FAIL __tests__/extensions/extensionCheck.ts
  ● Test suite failed to run

    Cannot find module 'gluegun/toolbox' from 'mockContext.ts'

    > 1 | const realThing = require('gluegun/toolbox')
      2 | const realSolidarityContext = require('../../src/extensions/solidarity-extension')
      3 | realSolidarityContext(realThing)
      4 |

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:169:17)
      at Object.<anonymous> (__tests__/__mocks__/mockContext.ts:1:6264)

PASS __tests__/index.ts
PASS __tests__/commands/help.ts
FAIL __tests__/command_helpers/checkCLI.ts
  ● Test suite failed to run

    Cannot find module 'gluegun/toolbox' from 'checkCLI.ts'

      19 | test('error on missing binary', async () => {
      20 |   expect(await checkCLI(doesNotExistCLI, context)).toBe(`Binary '${doesNotExistCLI.binary}' not found`)
    > 21 | })
      22 |
      23 | test('fine on existing binary', async () => {
      24 |   expect(await checkCLI(alwaysExistCLI, context)).toBe(undefined)

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:169:17)
      at Object.<anonymous> (__tests__/command_helpers/checkCLI.ts:21:17)

PASS __tests__/command_helpers/checkENV.ts
FAIL __tests__/command_helpers/checkDir.ts
  ● Test suite failed to run

    Cannot find module 'gluegun/toolbox' from 'checkDir.ts'

      1 | import checkDir from '../../src/extensions/functions/checkDir'
    > 2 | import * as context from 'gluegun/toolbox'
      3 |
      4 | test('checkDir detects an existing dir', () => {
      5 |   // Check for a known directory

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:169:17)
      at Object.<anonymous> (__tests__/command_helpers/checkDir.ts:2:16)

FAIL __tests__/command_helpers/checkFile.ts
  ● Test suite failed to run

    Cannot find module 'gluegun/toolbox' from 'checkFile.ts'

      1 | import checkFile from '../../src/extensions/functions/checkFile'
    > 2 | import * as context from 'gluegun/toolbox'
      3 |
      4 | test('checkFile detects an existing file', () => {
      5 |   // known file

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:169:17)
      at Object.<anonymous> (__tests__/command_helpers/checkFile.ts:2:16)

PASS __tests__/command_helpers/setSolidaritySettings.ts
FAIL __tests__/command_helpers/solidarityReport.ts
  ● Test suite failed to run

    Cannot find module 'gluegun/toolbox' from 'mockContext.ts'

    > 1 | const realThing = require('gluegun/toolbox')
      2 | const realSolidarityContext = require('../../src/extensions/solidarity-extension')
      3 | realSolidarityContext(realThing)
      4 |

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:169:17)
      at Object.<anonymous> (__tests__/__mocks__/mockContext.ts:1:6264)

PASS __tests__/integration/solidarity-check/check-invalid.ts
FAIL __tests__/commands/report.ts
  ● Test suite failed to run

    Cannot find module 'gluegun/toolbox' from 'mockContext.ts'

    > 1 | const realThing = require('gluegun/toolbox')
      2 | const realSolidarityContext = require('../../src/extensions/solidarity-extension')
      3 | realSolidarityContext(realThing)
      4 |

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:169:17)
      at Object.<anonymous> (__tests__/__mocks__/mockContext.ts:1:6264)

FAIL __tests__/command_helpers/createPlugin.ts
  ● Test suite failed to run

    Cannot find module 'gluegun/toolbox' from 'mockContext.ts'

    > 1 | const realThing = require('gluegun/toolbox')
      2 | const realSolidarityContext = require('../../src/extensions/solidarity-extension')
      3 | realSolidarityContext(realThing)
      4 |

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:169:17)
      at Object.<anonymous> (__tests__/__mocks__/mockContext.ts:1:6264)

PASS __tests__/docs/testDocs.ts
FAIL __tests__/command_helpers/binaryExists.ts
  ● Test suite failed to run

    Cannot find module 'gluegun/toolbox' from 'binaryExists.ts'

       8 |   expect(await binaryExists(doesNotExistCLI, context)).toBe(false)
       9 | })
    > 10 |
      11 | test('true on existing binary', async () => {
      12 |   expect(await binaryExists(alwaysExistCLI, context)).toBe(true)
      13 | })

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:169:17)
      at Object.<anonymous> (__tests__/command_helpers/binaryExists.ts:10:16)

PASS __tests__/schema/validateExampleSchema.ts

Summary of all failing tests
FAIL __tests__/commands/snapshot.ts
  ● Test suite failed to run

    Cannot find module 'gluegun/toolbox' from 'mockContext.ts'

    > 1 | const realThing = require('gluegun/toolbox')
      2 | const realSolidarityContext = require('../../src/extensions/solidarity-extension')
      3 | realSolidarityContext(realThing)
      4 |

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:169:17)
      at Object.<anonymous> (__tests__/__mocks__/mockContext.ts:1:6264)

FAIL __tests__/command_helpers/checkRequirement.ts
  ● Test suite failed to run

    Cannot find module 'gluegun/toolbox' from 'checkRequirement.ts'

      21 | jest.mock('../../src/extensions/functions/checkFile')
      22 | const checkFile = require('../../src/extensions/functions/checkFile')
    > 23 |
      24 | const context = require('gluegun/toolbox')
      25 |
      26 | const badRule = toPairs({

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:169:17)
      at Object.<anonymous> (__tests__/command_helpers/checkRequirement.ts:23:100)

FAIL __tests__/command_helpers/updateRequirement.ts
  ● Test suite failed to run

    Cannot find module 'gluegun/toolbox' from 'mockContext.ts'

    > 1 | const realThing = require('gluegun/toolbox')
      2 | const realSolidarityContext = require('../../src/extensions/solidarity-extension')
      3 | realSolidarityContext(realThing)
      4 |

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:169:17)
      at Object.<anonymous> (__tests__/__mocks__/mockContext.ts:1:6264)

FAIL __tests__/command_helpers/reviewRule.ts
  ● reviewRule › when rule: cli › rule gets added

    Cannot find module 'gluegun/toolbox' from 'mockContext.ts'

    > 1 | const realThing = require('gluegun/toolbox')
      2 | const realSolidarityContext = require('../../src/extensions/solidarity-extension')
      3 | realSolidarityContext(realThing)
      4 |

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:169:17)
      at Object.<anonymous> (__tests__/__mocks__/mockContext.ts:1:27)

  ● reviewRule › when rule: cli › rule gets added

    TypeError: Cannot destructure property `print` of 'undefined' or 'null'.

      18 |   context: SolidarityRunContext
      19 | ) => {
    > 20 |   const { print, solidarity } = context
      21 |   const { colors, checkmark, xmark } = print
      22 |   const prettyBool = (bl: boolean) => (bl ? checkmark + colors.green(' YES') : xmark + colors.red(' NO'))
      23 |   // @ts-ignore - flatten will never get a string bc tail is called first

      at src/extensions/functions/reviewRule.ts:20:33
      at src/extensions/functions/reviewRule.ts:8:1
      at Object.<anonymous>.__awaiter (src/extensions/functions/reviewRule.ts:8:1)
      at Object.<anonymous>.module.exports (src/extensions/functions/reviewRule.ts:18:3)
      at __tests__/command_helpers/reviewRule.ts:18:28
      at __tests__/command_helpers/reviewRule.ts:3:1
      at Object.<anonymous>.__awaiter (__tests__/command_helpers/reviewRule.ts:3:1)
      at Object.test (__tests__/command_helpers/reviewRule.ts:15:29)

  ● reviewRule › when rule: env › rule gets added

    Cannot find module 'mockContext' from 'reviewRule.ts'

       8 |   beforeEach(() => {
       9 |     // fresh mock context
    > 10 |     mockContext = examplePlugin(require('mockContext'))
      11 |     reportResults = createReport(mockContext)
      12 |   })
      13 |

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:169:17)
      at Object.beforeEach (__tests__/command_helpers/reviewRule.ts:10:33)

  ● reviewRule › when rule: env › rule gets added

    TypeError: Cannot destructure property `print` of 'undefined' or 'null'.

      18 |   context: SolidarityRunContext
      19 | ) => {
    > 20 |   const { print, solidarity } = context
      21 |   const { colors, checkmark, xmark } = print
      22 |   const prettyBool = (bl: boolean) => (bl ? checkmark + colors.green(' YES') : xmark + colors.red(' NO'))
      23 |   // @ts-ignore - flatten will never get a string bc tail is called first

      at src/extensions/functions/reviewRule.ts:20:33
      at src/extensions/functions/reviewRule.ts:8:1
      at Object.<anonymous>.__awaiter (src/extensions/functions/reviewRule.ts:8:1)
      at Object.<anonymous>.module.exports (src/extensions/functions/reviewRule.ts:18:3)
      at __tests__/command_helpers/reviewRule.ts:28:28
      at __tests__/command_helpers/reviewRule.ts:3:1
      at Object.<anonymous>.__awaiter (__tests__/command_helpers/reviewRule.ts:3:1)
      at Object.test (__tests__/command_helpers/reviewRule.ts:25:29)

  ● reviewRule › when rule: dir › rule gets added

    Cannot find module 'mockContext' from 'reviewRule.ts'

       8 |   beforeEach(() => {
       9 |     // fresh mock context
    > 10 |     mockContext = examplePlugin(require('mockContext'))
      11 |     reportResults = createReport(mockContext)
      12 |   })
      13 |

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:169:17)
      at Object.beforeEach (__tests__/command_helpers/reviewRule.ts:10:33)

  ● reviewRule › when rule: dir › rule gets added

    TypeError: Cannot destructure property `print` of 'undefined' or 'null'.

      18 |   context: SolidarityRunContext
      19 | ) => {
    > 20 |   const { print, solidarity } = context
      21 |   const { colors, checkmark, xmark } = print
      22 |   const prettyBool = (bl: boolean) => (bl ? checkmark + colors.green(' YES') : xmark + colors.red(' NO'))
      23 |   // @ts-ignore - flatten will never get a string bc tail is called first

      at src/extensions/functions/reviewRule.ts:20:33
      at src/extensions/functions/reviewRule.ts:8:1
      at Object.<anonymous>.__awaiter (src/extensions/functions/reviewRule.ts:8:1)
      at Object.<anonymous>.module.exports (src/extensions/functions/reviewRule.ts:18:3)
      at __tests__/command_helpers/reviewRule.ts:38:28
      at __tests__/command_helpers/reviewRule.ts:3:1
      at Object.<anonymous>.__awaiter (__tests__/command_helpers/reviewRule.ts:3:1)
      at Object.test (__tests__/command_helpers/reviewRule.ts:35:29)

  ● reviewRule › when rule: file › rule gets added

    Cannot find module 'mockContext' from 'reviewRule.ts'

       8 |   beforeEach(() => {
       9 |     // fresh mock context
    > 10 |     mockContext = examplePlugin(require('mockContext'))
      11 |     reportResults = createReport(mockContext)
      12 |   })
      13 |

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:169:17)
      at Object.beforeEach (__tests__/command_helpers/reviewRule.ts:10:33)

  ● reviewRule › when rule: file › rule gets added

    TypeError: Cannot destructure property `print` of 'undefined' or 'null'.

      18 |   context: SolidarityRunContext
      19 | ) => {
    > 20 |   const { print, solidarity } = context
      21 |   const { colors, checkmark, xmark } = print
      22 |   const prettyBool = (bl: boolean) => (bl ? checkmark + colors.green(' YES') : xmark + colors.red(' NO'))
      23 |   // @ts-ignore - flatten will never get a string bc tail is called first

      at src/extensions/functions/reviewRule.ts:20:33
      at src/extensions/functions/reviewRule.ts:8:1
      at Object.<anonymous>.__awaiter (src/extensions/functions/reviewRule.ts:8:1)
      at Object.<anonymous>.module.exports (src/extensions/functions/reviewRule.ts:18:3)
      at __tests__/command_helpers/reviewRule.ts:48:28
      at __tests__/command_helpers/reviewRule.ts:3:1
      at Object.<anonymous>.__awaiter (__tests__/command_helpers/reviewRule.ts:3:1)
      at Object.test (__tests__/command_helpers/reviewRule.ts:45:29)

  ● reviewRule › when rule: shell › rule gets added

    Cannot find module 'mockContext' from 'reviewRule.ts'

       8 |   beforeEach(() => {
       9 |     // fresh mock context
    > 10 |     mockContext = examplePlugin(require('mockContext'))
      11 |     reportResults = createReport(mockContext)
      12 |   })
      13 |

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:169:17)
      at Object.beforeEach (__tests__/command_helpers/reviewRule.ts:10:33)

  ● reviewRule › when rule: shell › rule gets added

    TypeError: Cannot destructure property `print` of 'undefined' or 'null'.

      18 |   context: SolidarityRunContext
      19 | ) => {
    > 20 |   const { print, solidarity } = context
      21 |   const { colors, checkmark, xmark } = print
      22 |   const prettyBool = (bl: boolean) => (bl ? checkmark + colors.green(' YES') : xmark + colors.red(' NO'))
      23 |   // @ts-ignore - flatten will never get a string bc tail is called first

      at src/extensions/functions/reviewRule.ts:20:33
      at src/extensions/functions/reviewRule.ts:8:1
      at Object.<anonymous>.__awaiter (src/extensions/functions/reviewRule.ts:8:1)
      at Object.<anonymous>.module.exports (src/extensions/functions/reviewRule.ts:18:3)
      at __tests__/command_helpers/reviewRule.ts:58:28
      at __tests__/command_helpers/reviewRule.ts:3:1
      at Object.<anonymous>.__awaiter (__tests__/command_helpers/reviewRule.ts:3:1)
      at Object.test (__tests__/command_helpers/reviewRule.ts:55:29)

  ● reviewRule › when rule: custom › rule gets added

    Cannot find module 'mockContext' from 'reviewRule.ts'

       8 |   beforeEach(() => {
       9 |     // fresh mock context
    > 10 |     mockContext = examplePlugin(require('mockContext'))
      11 |     reportResults = createReport(mockContext)
      12 |   })
      13 |

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:169:17)
      at Object.beforeEach (__tests__/command_helpers/reviewRule.ts:10:33)

  ● reviewRule › when rule: custom › rule gets added

    TypeError: Cannot read property 'cliRules' of undefined

      67 |       const rule = ['CUSTOM', [{ rule: 'custom', plugin: 'Example Plugin', name: 'checkThing' }]]
      68 |
    > 69 |       expect(reportResults.cliRules.length).toBe(1)
      70 |       const result = await reviewRule(rule, reportResults, mockContext)
      71 |       // CUSTOM rule (which adds CLI report) was added
      72 |       expect(reportResults.cliRules.length).toBe(2)

      at __tests__/command_helpers/reviewRule.ts:69:28
      at __tests__/command_helpers/reviewRule.ts:3:1
      at Object.<anonymous>.__awaiter (__tests__/command_helpers/reviewRule.ts:3:1)
      at Object.test (__tests__/command_helpers/reviewRule.ts:66:29)

  ● reviewRule › when rule: custom › does nothing when no report exists

    Cannot find module 'mockContext' from 'reviewRule.ts'

       8 |   beforeEach(() => {
       9 |     // fresh mock context
    > 10 |     mockContext = examplePlugin(require('mockContext'))
      11 |     reportResults = createReport(mockContext)
      12 |   })
      13 |

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:169:17)
      at Object.beforeEach (__tests__/command_helpers/reviewRule.ts:10:33)

  ● reviewRule › when rule: custom › does nothing when no report exists

    TypeError: Cannot read property 'cliRules' of undefined

      76 |       const rule = ['CUSTOM', [{ rule: 'custom', plugin: 'Example Plugin', name: 'checkSecondThing' }]]
      77 |
    > 78 |       expect(reportResults.cliRules.length).toBe(1)
      79 |       const result = await reviewRule(rule, reportResults, mockContext)
      80 |       // should not change rules
      81 |       expect(reportResults.cliRules.length).toBe(1)

      at __tests__/command_helpers/reviewRule.ts:78:28
      at __tests__/command_helpers/reviewRule.ts:3:1
      at Object.<anonymous>.__awaiter (__tests__/command_helpers/reviewRule.ts:3:1)
      at Object.test (__tests__/command_helpers/reviewRule.ts:75:48)

  ● reviewRule › when rule: custom › Errors when plugin doesn not exist

    expect(value).toMatchSnapshot()

    Received value does not match stored snapshot 1.

    - [Error: Plugin not found 'FAKE']
    + [TypeError: Cannot destructure property `print` of 'undefined' or 'null'.]

      90 |         fail('Unknown rule should have errored')
      91 |       } catch (e) {
    > 92 |         expect(e).toMatchSnapshot()
      93 |       }
      94 |     })
      95 |   })

      at __tests__/command_helpers/reviewRule.ts:92:19
          at Generator.throw (<anonymous>)
      at rejected (__tests__/command_helpers/reviewRule.ts:3:1)

  ● reviewRule › when rule: unknown › rule gets added

    expect(value).toMatchSnapshot()

    Received value does not match stored snapshot 1.

    - [Error: Encountered unknown rule]
    + [TypeError: Cannot destructure property `print` of 'undefined' or 'null'.]

      104 |         fail('Unknown rule should have errored')
      105 |       } catch (e) {
    > 106 |         expect(e).toMatchSnapshot()
      107 |       }
      108 |     })
      109 |   })

      at __tests__/command_helpers/reviewRule.ts:106:19
          at Generator.throw (<anonymous>)
      at rejected (__tests__/command_helpers/reviewRule.ts:3:1)

FAIL __tests__/command_helpers/appendSolidaritySettings.ts
  ● Test suite failed to run

    Cannot find module 'gluegun/toolbox' from 'mockContext.ts'

    > 1 | const realThing = require('gluegun/toolbox')
      2 | const realSolidarityContext = require('../../src/extensions/solidarity-extension')
      3 | realSolidarityContext(realThing)
      4 |

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:169:17)
      at Object.<anonymous> (__tests__/__mocks__/mockContext.ts:1:6264)

FAIL __tests__/command_helpers/checkShell.ts
  ● Test suite failed to run

    Cannot find module 'gluegun/toolbox' from 'checkShell.ts'

       7 |  *
       8 |  * @param stdout The stdout to mock return
    >  9 |  * @param status The exit code to mock return (default: 0)
      10 |  */
      11 | const createContext = (stdout: string, status: number = 0) => ({
      12 |   system: {

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:169:17)
      at Object.<anonymous> (__tests__/command_helpers/checkShell.ts:9:16)

FAIL __tests__/command_helpers/checkRequirementPlugins.ts
  ● Test suite failed to run

    Cannot find module 'gluegun/toolbox' from 'mockContext.ts'

    > 1 | const realThing = require('gluegun/toolbox')
      2 | const realSolidarityContext = require('../../src/extensions/solidarity-extension')
      3 | realSolidarityContext(realThing)
      4 |

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:169:17)
      at Object.<anonymous> (__tests__/__mocks__/mockContext.ts:1:6264)

FAIL __tests__/command_helpers/getSolidaritySettings.ts
  ● Test suite failed to run

    Cannot find module 'gluegun/toolbox' from 'getSolidaritySettings.ts'

       8 |     test('getSolidaritySettings exists', () => expect(getSolidaritySettings).toMatchSnapshot())
       9 |
    > 10 |     test('getSolidaritySettings succeeds', async () => {
      11 |       const resultSettings = getSolidaritySettings(context)
      12 |       // we got an object with requirements defined
      13 |       expect(resultSettings).toMatchObject({ requirements: {} })

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:169:17)
      at Object.<anonymous> (__tests__/command_helpers/getSolidaritySettings.ts:10:17)

FAIL __tests__/command_helpers/getVersion.ts
  ● Test suite failed to run

    Cannot find module 'gluegun/toolbox' from 'getVersion.ts'

       9 | describe('getVersion', () => {
      10 |   beforeAll(() => {
    > 11 |     // These can be slow on CI
      12 |     originalTimeout = jasmine.DEFAULT_TIMEOUT_INTERVAL
      13 |     jasmine.DEFAULT_TIMEOUT_INTERVAL = 60000
      14 |   })

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:169:17)
      at Object.<anonymous> (__tests__/command_helpers/getVersion.ts:11:17)

FAIL __tests__/command_helpers/checkCLIForUpdates.ts
  ● Test suite failed to run

    Cannot find module 'gluegun/toolbox' from 'checkCLIForUpdates.ts'

       8 |   version: '--version',
       9 | }
    > 10 |
      11 | const ruleNoSemver = {
      12 |   rule: 'cli',
      13 |   binary: 'yarn',

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:169:17)
      at Object.<anonymous> (__tests__/command_helpers/checkCLIForUpdates.ts:10:16)

FAIL __tests__/command_helpers/printResults.ts
  ● reviewRule › printResults uses table

    Cannot find module 'gluegun/toolbox' from 'mockContext.ts'

    > 1 | const realThing = require('gluegun/toolbox')
      2 | const realSolidarityContext = require('../../src/extensions/solidarity-extension')
      3 | realSolidarityContext(realThing)
      4 |

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:169:17)
      at Object.<anonymous> (__tests__/__mocks__/mockContext.ts:1:27)

  ● reviewRule › printResults uses table

    TypeError: Cannot destructure property `print` of 'undefined' or 'null'.

      1 | import { SolidarityRunContext, SolidarityReportResults } from '../../types'
      2 | module.exports = (results: SolidarityReportResults, context: SolidarityRunContext): void => {
    > 3 |   const { print, printSeparator } = context
      4 |   const { info } = print
      5 |   const printSpacedTable = (table, header) => {
      6 |     info(`### ${header}\n`)

      at Object.<anonymous>.module.exports (src/extensions/functions/printResults.ts:3:37)
      at Object.test (__tests__/command_helpers/printResults.ts:16:5)

  ● reviewRule › prints custom tables

    Cannot find module 'mockContext' from 'printResults.ts'

       9 |   beforeEach(() => {
      10 |     // fresh mock context
    > 11 |     mockContext = require('mockContext')
      12 |     reportResults = createReport(mockContext)
      13 |   })
      14 |

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:169:17)
      at Object.beforeEach (__tests__/command_helpers/printResults.ts:11:19)

  ● reviewRule › prints custom tables

    TypeError: Cannot read property 'customRules' of undefined

      29 |       table: [['Title'], ['NEW ORLEANS']],
      30 |     }
    > 31 |     reportResults.customRules.push(justHeaderTable)
      32 |     reportResults.customRules.push(customTable)
      33 |     printResults(reportResults, mockContext)
      34 |     expect(flatten(mockContext.print.table.mock.calls)).not.toContain('PARIS')

      at Object.test (__tests__/command_helpers/printResults.ts:31:19)

FAIL __tests__/command_helpers/updateVersions.ts
  ● Test suite failed to run

    Cannot find module 'gluegun/toolbox' from 'mockContext.ts'

    > 1 | const realThing = require('gluegun/toolbox')
      2 | const realSolidarityContext = require('../../src/extensions/solidarity-extension')
      3 | realSolidarityContext(realThing)
      4 |

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:169:17)
      at Object.<anonymous> (__tests__/__mocks__/mockContext.ts:1:6264)

FAIL __tests__/commands/create.ts
  ● Test suite failed to run

    Cannot find module 'gluegun/toolbox' from 'mockContext.ts'

    > 1 | const realThing = require('gluegun/toolbox')
      2 | const realSolidarityContext = require('../../src/extensions/solidarity-extension')
      3 | realSolidarityContext(realThing)
      4 |

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:169:17)
      at Object.<anonymous> (__tests__/__mocks__/mockContext.ts:1:6264)

FAIL __tests__/command_helpers/findPluginInfo.ts
  ● Test suite failed to run

    Cannot find module 'gluegun/toolbox' from 'mockContext.ts'

    > 1 | const realThing = require('gluegun/toolbox')
      2 | const realSolidarityContext = require('../../src/extensions/solidarity-extension')
      3 | realSolidarityContext(realThing)
      4 |

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:169:17)
      at Object.<anonymous> (__tests__/__mocks__/mockContext.ts:1:6264)

FAIL __tests__/extensions/extensionCheck.ts
  ● Test suite failed to run

    Cannot find module 'gluegun/toolbox' from 'mockContext.ts'

    > 1 | const realThing = require('gluegun/toolbox')
      2 | const realSolidarityContext = require('../../src/extensions/solidarity-extension')
      3 | realSolidarityContext(realThing)
      4 |

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:169:17)
      at Object.<anonymous> (__tests__/__mocks__/mockContext.ts:1:6264)

FAIL __tests__/command_helpers/checkCLI.ts
  ● Test suite failed to run

    Cannot find module 'gluegun/toolbox' from 'checkCLI.ts'

      19 | test('error on missing binary', async () => {
      20 |   expect(await checkCLI(doesNotExistCLI, context)).toBe(`Binary '${doesNotExistCLI.binary}' not found`)
    > 21 | })
      22 |
      23 | test('fine on existing binary', async () => {
      24 |   expect(await checkCLI(alwaysExistCLI, context)).toBe(undefined)

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:169:17)
      at Object.<anonymous> (__tests__/command_helpers/checkCLI.ts:21:17)

FAIL __tests__/command_helpers/checkDir.ts
  ● Test suite failed to run

    Cannot find module 'gluegun/toolbox' from 'checkDir.ts'

      1 | import checkDir from '../../src/extensions/functions/checkDir'
    > 2 | import * as context from 'gluegun/toolbox'
      3 |
      4 | test('checkDir detects an existing dir', () => {
      5 |   // Check for a known directory

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:169:17)
      at Object.<anonymous> (__tests__/command_helpers/checkDir.ts:2:16)

FAIL __tests__/command_helpers/checkFile.ts
  ● Test suite failed to run

    Cannot find module 'gluegun/toolbox' from 'checkFile.ts'

      1 | import checkFile from '../../src/extensions/functions/checkFile'
    > 2 | import * as context from 'gluegun/toolbox'
      3 |
      4 | test('checkFile detects an existing file', () => {
      5 |   // known file

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:169:17)
      at Object.<anonymous> (__tests__/command_helpers/checkFile.ts:2:16)

FAIL __tests__/command_helpers/solidarityReport.ts
  ● Test suite failed to run

    Cannot find module 'gluegun/toolbox' from 'mockContext.ts'

    > 1 | const realThing = require('gluegun/toolbox')
      2 | const realSolidarityContext = require('../../src/extensions/solidarity-extension')
      3 | realSolidarityContext(realThing)
      4 |

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:169:17)
      at Object.<anonymous> (__tests__/__mocks__/mockContext.ts:1:6264)

FAIL __tests__/commands/report.ts
  ● Test suite failed to run

    Cannot find module 'gluegun/toolbox' from 'mockContext.ts'

    > 1 | const realThing = require('gluegun/toolbox')
      2 | const realSolidarityContext = require('../../src/extensions/solidarity-extension')
      3 | realSolidarityContext(realThing)
      4 |

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:169:17)
      at Object.<anonymous> (__tests__/__mocks__/mockContext.ts:1:6264)

FAIL __tests__/command_helpers/createPlugin.ts
  ● Test suite failed to run

    Cannot find module 'gluegun/toolbox' from 'mockContext.ts'

    > 1 | const realThing = require('gluegun/toolbox')
      2 | const realSolidarityContext = require('../../src/extensions/solidarity-extension')
      3 | realSolidarityContext(realThing)
      4 |

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:169:17)
      at Object.<anonymous> (__tests__/__mocks__/mockContext.ts:1:6264)

FAIL __tests__/command_helpers/binaryExists.ts
  ● Test suite failed to run

    Cannot find module 'gluegun/toolbox' from 'binaryExists.ts'

       8 |   expect(await binaryExists(doesNotExistCLI, context)).toBe(false)
       9 | })
    > 10 |
      11 | test('true on existing binary', async () => {
      12 |   expect(await binaryExists(alwaysExistCLI, context)).toBe(true)
      13 | })

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:169:17)
      at Object.<anonymous> (__tests__/command_helpers/binaryExists.ts:10:16)

Snapshot Summary
 › 2 snapshot tests failed in 1 test suite. Inspect your code changes or run `npm run test:ci -- -u` to update them.

Test Suites: 22 failed, 11 passed, 33 total
Tests:       11 failed, 31 passed, 42 total
Snapshots:   2 failed, 7 passed, 9 total
Time:        9.064s
Ran all test suites.
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR<EMAIL_ADDRESS>test:ci: `jest --ci --runInBand && yarn test:extras`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>test:ci script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/travis/.npm/_logs/2018-02-26T04_49_38_558Z-debug.log

yarn danger ci

yarn run v1.3.2
$ /home/travis/build/infinitered/solidarity/node_modules/.bin/danger ci
You may have updated from Danger 2.x -> 3.x without updating from `danger` to `danger ci`.
Found only warnings, not failing the build.
Done in 3.09s.

Yikes! The bots attacked.

That's better.