UNPKG

code-equality-assertions

Version:

Test assertion library for checking the contents of strings of Javascript.

32 lines (30 loc) 1.02 kB
// src/index.ts import { createPatch } from "diff"; import prettier from "prettier"; import parser from "prettier/parser-babel.js"; import * as babel from "@babel/core"; import TSSyntax from "@babel/plugin-syntax-typescript"; function standardize(code) { return prettier.format(babel.transform(code, { babelrc: false, configFile: false, plugins: [TSSyntax] }).code, { parser: "babel", plugins: [parser] }); } function codeEqual(actual, expected) { let standardActual = standardize(actual); let standardExpected = standardize(expected); if (standardActual === standardExpected) { return { result: true, diff: void 0 }; } else { return { result: false, diff: createPatch("", standardExpected, standardActual).split("\n").slice(4).join("\n") }; } } function codeContains(actual, expected) { let standardActual = standardize(actual); let standardExpected = standardize(expected); return standardActual.indexOf(standardExpected) !== -1; } export { codeEqual, codeContains };