UNPKG

piral-cli

Version:

The standard CLI for creating and building a Piral instance or a Pilet.

88 lines (74 loc) 2.19 kB
import { describe, it, expect } from 'vitest'; import { mkdtempSync, existsSync, writeFileSync } from 'fs'; import { tmpdir } from 'os'; import { join, resolve } from 'path'; import { packPilet } from './pack-pilet'; function createTempDir() { return mkdtempSync(join(tmpdir(), 'piral-tests-pack-pilet-')); } describe('Pack Pilet Command', () => { it('can pack a standard npm package to a specified target', async () => { const dir = createTempDir(); const target = 'foo.tgz'; const packageJson = resolve(dir, 'package.json'); writeFileSync( packageJson, JSON.stringify({ name: 'my-pilet', version: '1.0.0', }), 'utf8', ); await packPilet(dir, { target, }); expect(existsSync(resolve(dir, target))).toBeTruthy(); }); it('can pack a standard npm package to a the default target using the process directory', async () => { const originalDir = process.cwd(); const dir = createTempDir(); const packageJson = resolve(dir, 'package.json'); writeFileSync( packageJson, JSON.stringify({ name: 'my-pilet', version: '1.0.0', }), 'utf8', ); await packPilet(dir); expect(existsSync(resolve(dir, 'my-pilet-1.0.0.tgz'))).toBeTruthy(); }); it('will fail if the source does not exist', async () => { const dir = createTempDir(); const packageJson = resolve(dir, 'package.json'); writeFileSync( packageJson, JSON.stringify({ name: 'my-pilet', version: '1.0.0', }), 'utf8', ); await expect( packPilet(dir, { source: 'foo', logLevel: 2, }), ).rejects.toThrowError(); expect(existsSync(resolve(dir, 'my-pilet-1.0.0.tgz'))).toBeFalsy(); }); it('will fail if no version is given', async () => { const dir = createTempDir(); const packageJson = resolve(dir, 'package.json'); writeFileSync( packageJson, JSON.stringify({ name: 'my-pilet', }), 'utf8', ); await expect(packPilet(dir)).rejects.toThrowError(); expect(existsSync(resolve(dir, 'my-pilet-1.0.0.tgz'))).toBeFalsy(); }); });