Big News: Socket raises $60M Series C at a $1B valuation to secure software supply chains for AI-driven development.Announcement
Sign In

@boost/test-utils

Package Overview
Dependencies
Maintainers
1
Versions
33
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@boost/test-utils - npm Package Compare versions

Comparing version
4.0.1
to
5.0.0-alpha.1
+8
./mjs/index.mjs
export { copyFixtureToNodeModule, copyFixtureToTempFolder, createTempFileInFixture, createTempFixtureFolder, createTempFolderStructureFromJSON, getFixtureNodeModulePath, getFixturePath, getNodeModulePath, normalizePath, removeTempFile } from './fixtures.mjs';
import './types.mjs';
/**
* @copyright 2020, Miles Johnson
* @license https://opensource.org/licenses/MIT
*/
//# sourceMappingURL=index.mjs.map
import type { DirectoryStructure } from './types';
export declare function normalizePath(...parts: string[]): string;
export declare function getFixturePath(fixture: string, file?: string): string;
export declare function getFixtureNodeModulePath(fixture: string, moduleName: string, file?: string): string;
export declare function getNodeModulePath(moduleName: string, file?: string): string;
export declare function removeTempFile(filePath: string): void;
export declare function copyFixtureToNodeModule(fixture: string, moduleName: string, customModulePath?: boolean): () => void;
export declare function copyFixtureToTempFolder(fixture: string): string;
export declare function createTempFileInFixture(fixture: string, file: string, data: any): () => void;
export declare function createTempFixtureFolder(): string;
export declare function createTempFolderStructureFromJSON(structure: DirectoryStructure): string;
//# sourceMappingURL=fixtures.d.ts.map
{"version":3,"file":"fixtures.d.ts","sourceRoot":"","sources":["../src/fixtures.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAclD,wBAAgB,aAAa,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAExD;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,MAAW,GAAG,MAAM,CAEzE;AAED,wBAAgB,wBAAwB,CACvC,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,IAAI,GAAE,MAAW,GACf,MAAM,CAER;AAED,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,GAAE,MAAW,GAAG,MAAM,CAE/E;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,QAc9C;AAED,wBAAgB,uBAAuB,CACtC,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,gBAAgB,GAAE,OAAe,GAC/B,MAAM,IAAI,CAiBZ;AAED,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAM/D;AAGD,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,MAAM,IAAI,CAS5F;AAID,wBAAgB,uBAAuB,IAAI,MAAM,CAWhD;AAED,wBAAgB,iCAAiC,CAAC,SAAS,EAAE,kBAAkB,GAAG,MAAM,CAgBvF"}
import os from 'node:os';
import path from 'node:path';
import fs from 'fs-extra';
import { afterAll } from 'vitest';
/* eslint-disable @typescript-eslint/no-use-before-define */
const FIXTURES_DIR = path.join(process.cwd(), '../../tests/__fixtures__');
const TEMPORARY_FILES = new Set();
function normalizeSeparators(part) {
if (process.platform === 'win32') {
return part.replace(/\//g, '\\');
}
return part.replace(/\\/g, '/');
}
function normalizePath(...parts) {
return path.normalize(path.join(...parts.map(normalizeSeparators)));
}
function getFixturePath(fixture, file = '') {
return normalizePath(FIXTURES_DIR, fixture, file);
}
function getFixtureNodeModulePath(fixture, moduleName, file = '') {
return normalizePath(FIXTURES_DIR, fixture, 'node_modules', moduleName, file);
}
function getNodeModulePath(moduleName, file = '') {
return normalizePath(process.cwd(), 'node_modules', moduleName, file);
}
function removeTempFile(filePath) {
if (fs.existsSync(filePath)) {
try {
if (fs.statSync(filePath).isDirectory()) {
fs.emptyDirSync(filePath);
}
fs.removeSync(filePath);
} catch {
// Ignore?
}
}
TEMPORARY_FILES.delete(filePath);
}
function copyFixtureToNodeModule(fixture, moduleName, customModulePath = false) {
const modulePath = customModulePath ? normalizePath(moduleName) : getNodeModulePath(moduleName);
const pkgPath = normalizePath(path.join(modulePath, 'package.json'));
fs.copySync(getFixturePath(fixture), modulePath, {
overwrite: true
});
if (!fs.existsSync(pkgPath)) {
fs.writeJsonSync(pkgPath, {
main: './index.js',
name: moduleName,
version: '0.0.0'
});
}
return () => {
removeTempFile(modulePath);
};
}
function copyFixtureToTempFolder(fixture) {
const tempRoot = createTempFixtureFolder();
fs.copySync(getFixturePath(fixture), tempRoot, {
overwrite: true
});
return tempRoot;
}
// eslint-disable-next-line @typescript-eslint/no-explicit-any
function createTempFileInFixture(fixture, file, data) {
const filePath = getFixturePath(fixture, file);
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument
fs.writeFileSync(filePath, data);
return () => {
removeTempFile(filePath);
};
}
let folderCount = 0;
function createTempFixtureFolder() {
const tmp = os.tmpdir();
// eslint-disable-next-line no-magic-numbers
const dir = normalizePath(tmp, `boost-${Date.now().toString(16)}${folderCount}`);
fs.ensureDirSync(dir);
folderCount += 1;
TEMPORARY_FILES.add(dir);
return dir;
}
function createTempFolderStructureFromJSON(structure) {
const root = createTempFixtureFolder();
const files = typeof structure === 'function' ? structure(root) : structure;
Object.entries(files).forEach(([file, contents]) => {
if (contents === null) {
return;
}
const absFile = path.join(root, file);
fs.ensureDirSync(path.dirname(absFile));
fs.writeFileSync(absFile, contents, 'utf8');
});
return root;
}
afterAll(() => {
[...TEMPORARY_FILES].forEach(tempFile => {
removeTempFile(tempFile);
});
});
export { copyFixtureToNodeModule, copyFixtureToTempFolder, createTempFileInFixture, createTempFixtureFolder, createTempFolderStructureFromJSON, getFixtureNodeModulePath, getFixturePath, getNodeModulePath, normalizePath, removeTempFile };
//# sourceMappingURL=fixtures.mjs.map
{"version":3,"file":"fixtures.mjs","sources":["../src/fixtures.ts"],"sourcesContent":null,"names":[],"mappings":"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"}
/**
* @copyright 2020, Miles Johnson
* @license https://opensource.org/licenses/MIT
*/
export * from './fixtures';
export * from './types';
//# sourceMappingURL=index.d.ts.map
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC"}
export { copyFixtureToNodeModule, copyFixtureToTempFolder, createTempFileInFixture, createTempFixtureFolder, createTempFolderStructureFromJSON, getFixtureNodeModulePath, getFixturePath, getNodeModulePath, normalizePath, removeTempFile } from './fixtures.mjs';
import './types.mjs';
/**
* @copyright 2020, Miles Johnson
* @license https://opensource.org/licenses/MIT
*/
//# sourceMappingURL=index.mjs.map
{"version":3,"file":"index.mjs","sources":["../src/index.ts"],"sourcesContent":null,"names":[],"mappings":";;;AAAA;AACA;AACA;AACA"}
export type DirectoryContent = string | null;
export type DirectoryJSON = Record<string, DirectoryContent>;
export type DirectoryStructure = DirectoryJSON | ((root: string) => DirectoryJSON);
//# sourceMappingURL=types.d.ts.map
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,IAAI,CAAC;AAE7C,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;AAE7D,MAAM,MAAM,kBAAkB,GAAG,aAAa,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,aAAa,CAAC,CAAC"}
//# sourceMappingURL=types.mjs.map
{"version":3,"file":"types.mjs","sources":[],"sourcesContent":null,"names":[],"mappings":""}
+14
-16
{
"name": "@boost/test-utils",
"version": "4.0.1",
"type": "commonjs",
"version": "5.0.0-alpha.1",
"type": "module",
"release": "1651512178249",
"description": "Utility classes and functions for testing Boost applications in Jest.",
"description": "Utility classes and functions for testing Boost applications in Vitest.",
"keywords": [

@@ -12,12 +12,10 @@ "boost",

],
"main": "./cjs/index.cjs",
"types": "./dts/index.d.ts",
"main": "./mjs/index.mjs",
"types": "./mjs/index.d.ts",
"files": [
"cjs/**/*.{cjs,mjs,map}",
"dts/**/*.d.ts",
"src/**/*.{ts,tsx,json}"
"mjs/**/*",
"src/**/*"
],
"engines": {
"node": ">=14.15.0",
"npm": ">=6.14.0"
"node": ">=16.12.0"
},

@@ -35,3 +33,4 @@ "repository": {

"dependencies": {
"fs-extra": "^11.1.1"
"fs-extra": "^11.2.0",
"vitest": "^1.2.2"
},

@@ -44,3 +43,3 @@ "funding": {

"api": "private",
"format": "cjs",
"format": "mjs",
"platform": "node"

@@ -51,10 +50,9 @@ },

".": {
"types": "./dts/index.d.ts",
"node": {
"import": "./cjs/index-wrapper.mjs",
"require": "./cjs/index.cjs"
"types": "./mjs/index.d.ts",
"import": "./mjs/index.mjs"
}
}
},
"gitHead": "fd64842195c9e1c72e726800f004bdc80fa682f8"
"gitHead": "8fd0f41cca47f7b6ce605eaca5cb2b4932fc89a5"
}
# Testing utilities - Boost
![build status](https://img.shields.io/github/workflow/status/milesj/boost/Build)
![build status](https://img.shields.io/github/actions/workflow/status/milesj/boost/build.yml)
![npm version](https://img.shields.io/npm/v/@boost/test-utils)
Jest testing utilities for [Boost](https://github.com/milesj/boost/) powered applications.
Vite testing utilities for [Boost](https://github.com/milesj/boost/) powered applications.

@@ -11,3 +11,3 @@ ## Requirements

- Boost
- Jest
- Vite

@@ -14,0 +14,0 @@ ## Installation

/* eslint-disable @typescript-eslint/no-use-before-define */
import os from 'os';
import path from 'path';
import os from 'node:os';
import path from 'node:path';
import fs from 'fs-extra';
import { DirectoryStructure } from './types';
import { afterAll } from 'vitest';
import type { DirectoryStructure } from './types';
const FIXTURES_DIR = path.join(process.cwd(), 'tests', '__fixtures__');
const FIXTURES_DIR = path.join(process.cwd(), '../../tests/__fixtures__');

@@ -79,10 +80,2 @@ const TEMPORARY_FILES = new Set<string>();

export function copyFixtureToMock(fixture: string, mockName: string): () => void {
const module = jest.requireActual(getFixturePath(fixture)) as unknown as object;
jest.doMock(mockName, () => module, { virtual: true });
return () => jest.dontMock(mockName);
}
export function copyFixtureToTempFolder(fixture: string): string {

@@ -141,8 +134,6 @@ const tempRoot = createTempFixtureFolder();

if (typeof afterAll === 'function') {
afterAll(() => {
[...TEMPORARY_FILES].forEach((tempFile) => {
removeTempFile(tempFile);
});
afterAll(() => {
[...TEMPORARY_FILES].forEach((tempFile) => {
removeTempFile(tempFile);
});
}
});
'use strict';
Object.defineProperty(exports, '__esModule', {
value: true
});
const fixtures = require('./fixtures.cjs');
require('./types.cjs');
/**
* @copyright 2020, Miles Johnson
* @license https://opensource.org/licenses/MIT
*/
exports.copyFixtureToMock = fixtures.copyFixtureToMock;
exports.copyFixtureToNodeModule = fixtures.copyFixtureToNodeModule;
exports.copyFixtureToTempFolder = fixtures.copyFixtureToTempFolder;
exports.createTempFileInFixture = fixtures.createTempFileInFixture;
exports.createTempFixtureFolder = fixtures.createTempFixtureFolder;
exports.createTempFolderStructureFromJSON = fixtures.createTempFolderStructureFromJSON;
exports.getFixtureNodeModulePath = fixtures.getFixtureNodeModulePath;
exports.getFixturePath = fixtures.getFixturePath;
exports.getNodeModulePath = fixtures.getNodeModulePath;
exports.normalizePath = fixtures.normalizePath;
exports.removeTempFile = fixtures.removeTempFile;
//# sourceMappingURL=index.cjs.map
'use strict';
Object.defineProperty(exports, '__esModule', {
value: true
});
const os = require('os');
const path = require('path');
const fs = require('fs-extra');
const _interopDefault = e => e && e.__esModule ? e : {
default: e
};
const os__default = /*#__PURE__*/_interopDefault(os);
const path__default = /*#__PURE__*/_interopDefault(path);
const fs__default = /*#__PURE__*/_interopDefault(fs);
/* eslint-disable @typescript-eslint/no-use-before-define */
const FIXTURES_DIR = path__default.default.join(process.cwd(), 'tests', '__fixtures__');
const TEMPORARY_FILES = new Set();
function normalizeSeparators(part) {
if (process.platform === 'win32') {
return part.replace(/\//g, '\\');
}
return part.replace(/\\/g, '/');
}
function normalizePath(...parts) {
return path__default.default.normalize(path__default.default.join(...parts.map(normalizeSeparators)));
}
function getFixturePath(fixture, file = '') {
return normalizePath(FIXTURES_DIR, fixture, file);
}
function getFixtureNodeModulePath(fixture, moduleName, file = '') {
return normalizePath(FIXTURES_DIR, fixture, 'node_modules', moduleName, file);
}
function getNodeModulePath(moduleName, file = '') {
return normalizePath(process.cwd(), 'node_modules', moduleName, file);
}
function removeTempFile(filePath) {
if (fs__default.default.existsSync(filePath)) {
try {
if (fs__default.default.statSync(filePath).isDirectory()) {
fs__default.default.emptyDirSync(filePath);
}
fs__default.default.removeSync(filePath);
} catch {
// Ignore?
}
}
TEMPORARY_FILES.delete(filePath);
}
function copyFixtureToNodeModule(fixture, moduleName, customModulePath = false) {
const modulePath = customModulePath ? normalizePath(moduleName) : getNodeModulePath(moduleName);
const pkgPath = normalizePath(path__default.default.join(modulePath, 'package.json'));
fs__default.default.copySync(getFixturePath(fixture), modulePath, {
overwrite: true
});
if (!fs__default.default.existsSync(pkgPath)) {
fs__default.default.writeJsonSync(pkgPath, {
main: './index.js',
name: moduleName,
version: '0.0.0'
});
}
return () => {
removeTempFile(modulePath);
};
}
function copyFixtureToMock(fixture, mockName) {
const module = jest.requireActual(getFixturePath(fixture));
jest.doMock(mockName, () => module, {
virtual: true
});
return () => jest.dontMock(mockName);
}
function copyFixtureToTempFolder(fixture) {
const tempRoot = createTempFixtureFolder();
fs__default.default.copySync(getFixturePath(fixture), tempRoot, {
overwrite: true
});
return tempRoot;
}
// eslint-disable-next-line @typescript-eslint/no-explicit-any
function createTempFileInFixture(fixture, file, data) {
const filePath = getFixturePath(fixture, file);
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument
fs__default.default.writeFileSync(filePath, data);
return () => {
removeTempFile(filePath);
};
}
let folderCount = 0;
function createTempFixtureFolder() {
const tmp = os__default.default.tmpdir();
// eslint-disable-next-line no-magic-numbers
const dir = normalizePath(tmp, `boost-${Date.now().toString(16)}${folderCount}`);
fs__default.default.ensureDirSync(dir);
folderCount += 1;
TEMPORARY_FILES.add(dir);
return dir;
}
function createTempFolderStructureFromJSON(structure) {
const root = createTempFixtureFolder();
const files = typeof structure === 'function' ? structure(root) : structure;
Object.entries(files).forEach(([file, contents]) => {
if (contents === null) {
return;
}
const absFile = path__default.default.join(root, file);
fs__default.default.ensureDirSync(path__default.default.dirname(absFile));
fs__default.default.writeFileSync(absFile, contents, 'utf8');
});
return root;
}
if (typeof afterAll === 'function') {
afterAll(() => {
[...TEMPORARY_FILES].forEach(tempFile => {
removeTempFile(tempFile);
});
});
}
exports.copyFixtureToMock = copyFixtureToMock;
exports.copyFixtureToNodeModule = copyFixtureToNodeModule;
exports.copyFixtureToTempFolder = copyFixtureToTempFolder;
exports.createTempFileInFixture = createTempFileInFixture;
exports.createTempFixtureFolder = createTempFixtureFolder;
exports.createTempFolderStructureFromJSON = createTempFolderStructureFromJSON;
exports.getFixtureNodeModulePath = getFixtureNodeModulePath;
exports.getFixturePath = getFixturePath;
exports.getNodeModulePath = getNodeModulePath;
exports.normalizePath = normalizePath;
exports.removeTempFile = removeTempFile;
//# sourceMappingURL=fixtures.cjs.map
{"version":3,"file":"fixtures.cjs","sources":["../src/fixtures.ts"],"sourcesContent":null,"names":["FIXTURES_DIR","path","join","process","cwd","TEMPORARY_FILES","Set","normalizeSeparators","part","platform","replace","normalizePath","parts","normalize","map","getFixturePath","fixture","file","getFixtureNodeModulePath","moduleName","getNodeModulePath","removeTempFile","filePath","fs","existsSync","statSync","isDirectory","emptyDirSync","removeSync","delete","copyFixtureToNodeModule","customModulePath","modulePath","pkgPath","copySync","overwrite","writeJsonSync","main","name","version","copyFixtureToMock","mockName","module","jest","requireActual","doMock","virtual","dontMock","copyFixtureToTempFolder","tempRoot","createTempFixtureFolder","createTempFileInFixture","data","writeFileSync","folderCount","tmp","os","tmpdir","dir","Date","now","toString","ensureDirSync","add","createTempFolderStructureFromJSON","structure","root","files","Object","entries","forEach","contents","absFile","dirname","afterAll","tempFile"],"mappings":"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"}
// Bundled with Packemon: https://packemon.dev
// This is an MJS wrapper for a sibling CJS file
import data from './index.cjs';
export const { copyFixtureToMock, copyFixtureToNodeModule, copyFixtureToTempFolder, createTempFileInFixture, createTempFixtureFolder, createTempFolderStructureFromJSON, getFixtureNodeModulePath, getFixturePath, getNodeModulePath, normalizePath, removeTempFile } = data;
'use strict';
Object.defineProperty(exports, '__esModule', {
value: true
});
const fixtures = require('./fixtures.cjs');
require('./types.cjs');
/**
* @copyright 2020, Miles Johnson
* @license https://opensource.org/licenses/MIT
*/
exports.copyFixtureToMock = fixtures.copyFixtureToMock;
exports.copyFixtureToNodeModule = fixtures.copyFixtureToNodeModule;
exports.copyFixtureToTempFolder = fixtures.copyFixtureToTempFolder;
exports.createTempFileInFixture = fixtures.createTempFileInFixture;
exports.createTempFixtureFolder = fixtures.createTempFixtureFolder;
exports.createTempFolderStructureFromJSON = fixtures.createTempFolderStructureFromJSON;
exports.getFixtureNodeModulePath = fixtures.getFixtureNodeModulePath;
exports.getFixturePath = fixtures.getFixturePath;
exports.getNodeModulePath = fixtures.getNodeModulePath;
exports.normalizePath = fixtures.normalizePath;
exports.removeTempFile = fixtures.removeTempFile;
//# sourceMappingURL=index.cjs.map
{"version":3,"file":"index.cjs","sources":["../src/index.ts"],"sourcesContent":null,"names":[],"mappings":";;;;;;;AAAA;AACA;AACA;AACA;;;;;;;;;;;;;;"}
'use strict';
//# sourceMappingURL=types.cjs.map
{"version":3,"file":"types.cjs","sources":[],"sourcesContent":null,"names":[],"mappings":";;"}
import { DirectoryStructure } from './types';
export declare function normalizePath(...parts: string[]): string;
export declare function getFixturePath(fixture: string, file?: string): string;
export declare function getFixtureNodeModulePath(fixture: string, moduleName: string, file?: string): string;
export declare function getNodeModulePath(moduleName: string, file?: string): string;
export declare function removeTempFile(filePath: string): void;
export declare function copyFixtureToNodeModule(fixture: string, moduleName: string, customModulePath?: boolean): () => void;
export declare function copyFixtureToMock(fixture: string, mockName: string): () => void;
export declare function copyFixtureToTempFolder(fixture: string): string;
export declare function createTempFileInFixture(fixture: string, file: string, data: any): () => void;
export declare function createTempFixtureFolder(): string;
export declare function createTempFolderStructureFromJSON(structure: DirectoryStructure): string;
//# sourceMappingURL=fixtures.d.ts.map
/**
* @copyright 2020, Miles Johnson
* @license https://opensource.org/licenses/MIT
*/
export * from './fixtures';
export * from './types';
//# sourceMappingURL=index.d.ts.map
export type DirectoryContent = string | null;
export type DirectoryJSON = Record<string, DirectoryContent>;
export type DirectoryStructure = DirectoryJSON | ((root: string) => DirectoryJSON);
//# sourceMappingURL=types.d.ts.map