UNPKG

node-publisher

Version:

A configurable release automation tool inspired by create-react-app and Travis CI.

70 lines (51 loc) 1.64 kB
const { npmClient, publishClient } = require('./'); jest.mock('fs'); describe('npmClient', () => { beforeEach(() => { require('fs').__setMockFiles([]); }); describe('when client cannot be detected', () => { const MOCKED_FILES = []; it('throws an error', () => { require('fs').__setMockFiles(MOCKED_FILES); expect(npmClient).toThrow(); }); }); describe('when package-lock.json found', () => { const MOCKED_FILES = ['package-lock.json']; it('returns npm', () => { require('fs').__setMockFiles(MOCKED_FILES); expect(npmClient).not.toThrow(); expect(npmClient()).toBe('npm'); }); }); describe('when both package-lock.json and yarn.lock are found', () => { const MOCKED_FILES = ['package-lock.json', 'yarn.lock']; it('returns yarn', () => { require('fs').__setMockFiles(MOCKED_FILES); expect(npmClient).not.toThrow(); expect(npmClient()).toBe('yarn'); }); }); }); describe('publishClient', () => { beforeEach(() => { require('fs').__setMockFiles([]); }); describe('when lerna.json is found', () => { const MOCKED_FILES = ['lerna.json']; it('returns lerna', () => { require('fs').__setMockFiles(MOCKED_FILES); expect(publishClient).not.toThrow(); expect(publishClient()).toBe('lerna'); }); }); describe('when lerna.json is not found', () => { const MOCKED_FILES = ['yarn.lock']; it('returns the npm client', () => { require('fs').__setMockFiles(MOCKED_FILES); expect(publishClient).not.toThrow(); expect(publishClient()).toBe('yarn'); }); }); });