UNPKG

@lunaticmuch/front-matter-manipulator

Version:

A utility for parsing and manipulating documents with Front Matter

106 lines (76 loc) 3.3 kB
const fs = require("fs") const {rename} = require("../lib/index") const {resolve} = require("path") const inputFile = resolve(__dirname + "/testfiles/rename/input.md") const reset = fs.readFileSync(inputFile, "utf-8") const outputBase = __dirname + "/testfiles/rename/output/" test("Rename key-value pair", () => { fs.writeFileSync(inputFile, reset, "utf-8") rename(inputFile, "key", "key_test", {}) const output = fs.readFileSync(inputFile, "utf-8") const expected = fs.readFileSync(resolve(outputBase, "keyValuePair.md"), "utf-8") expect(output).toEqual(expected) }) test("Fail to rename non-existent key-value pair", () => { fs.writeFileSync(inputFile, reset, "utf-8") rename(inputFile, "key_test", "key", {}) const output = fs.readFileSync(inputFile, "utf-8") const expected = reset expect(output).toEqual(expected) }) test("Rename object", () => { fs.writeFileSync(inputFile, reset, "utf-8") rename(inputFile, "object", "object_test", {}) const output = fs.readFileSync(inputFile, "utf-8") const expected = fs.readFileSync(resolve(outputBase, "object.md"), "utf-8") expect(output).toEqual(expected) }) test("Fail to rename non-existent object", () => { fs.writeFileSync(inputFile, reset, "utf-8") rename(inputFile, "object_test", "object", {}) const output = fs.readFileSync(inputFile, "utf-8") const expected = reset expect(output).toEqual(expected) }) test("Rename nested key-value pair", () => { fs.writeFileSync(inputFile, reset, "utf-8") rename(inputFile, "object.key1", "key1_test", {}) const output = fs.readFileSync(inputFile, "utf-8") const expected = fs.readFileSync(resolve(outputBase, "nestedKeyValuePair.md"), "utf-8") expect(output).toEqual(expected) }) test("Fail to rename non-existent nested key-value pair", () => { fs.writeFileSync(inputFile, reset, "utf-8") rename(inputFile, "object.key1_test", "key1", {}) const output = fs.readFileSync(inputFile, "utf-8") const expected = reset expect(output).toEqual(expected) }) test("Rename array", () => { fs.writeFileSync(inputFile, reset, "utf-8") rename(inputFile, "array", "array_test", {}) const output = fs.readFileSync(inputFile, "utf-8") const expected = fs.readFileSync(resolve(outputBase, "array.md"), "utf-8") expect(output).toEqual(expected) }) test("Fail to rename array", () => { fs.writeFileSync(inputFile, reset, "utf-8") rename(inputFile, "array_test", "array", {}) const output = fs.readFileSync(inputFile, "utf-8") const expected = reset expect(output).toEqual(expected) }) test("Rename array of objects key value pair", () => { fs.writeFileSync(inputFile, reset, "utf-8") rename(inputFile, "arrayOfObjects.key1", "key1_test", {}) const output = fs.readFileSync(inputFile, "utf-8") const expected = fs.readFileSync(resolve(outputBase, "arrayOfObjects.md"), "utf-8") expect(output).toEqual(expected) }) test("Fail to rename array of objects key value pair", () => { fs.writeFileSync(inputFile, reset, "utf-8") rename(inputFile, "arrayOfObjects.key1_test", "key1", {}) const output = fs.readFileSync(inputFile, "utf-8") const expected = reset expect(output).toEqual(expected) })