UNPKG

@patchworkdev/common

Version:

Patchwork Development Kit

44 lines (43 loc) 2.43 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const fs_1 = __importDefault(require("fs")); const path_1 = __importDefault(require("path")); const contractSchema_1 = require("../codegen/contractSchema"); const contractSchemaJsonParser_1 = require("../codegen/contractSchemaJsonParser"); const jsonContractConfigGen_1 = require("./jsonContractConfigGen"); describe("JSONContractConfigGen", () => { const testDirectory = "./src/codegen/test_data"; const files = fs_1.default.readdirSync(testDirectory); const jsonFiles = files.filter((file) => file.endsWith(".json")); const solFiles = files.filter((file) => file.endsWith(".sol")); const groupedFiles = jsonFiles.reduce((acc, jsonFile) => { const baseName = path_1.default.basename(jsonFile, ".json"); acc[baseName] = { json: path_1.default.join(testDirectory, jsonFile), sol: path_1.default.join(testDirectory, baseName + ".sol"), }; return acc; }, {}); for (const [baseName, files] of Object.entries(groupedFiles)) { if (solFiles.includes(baseName + ".sol")) { it(`should generate matching JSON for ${baseName}`, () => { // 1. Construct ContractSchema from JSON const originalJsonString = fs_1.default.readFileSync(files.json, "utf8"); const originalJson = JSON.parse(originalJsonString); const contractConfig = (0, contractSchemaJsonParser_1.parseJson)(originalJson); // 2. Call JSONContractConfigGen with the ContractSchema const generator = new jsonContractConfigGen_1.JSONContractConfigGen(); const generatedJsonString = generator.gen(new contractSchema_1.ContractSchemaImpl(contractConfig)); // 3. Compare generated JSON with original JSON const generatedJson = JSON.parse(generatedJsonString); // Remove whitespace and newlines for comparison const normalizedOriginal = JSON.stringify(originalJson).replace(/\s/g, ''); const normalizedGenerated = JSON.stringify(generatedJson).replace(/\s/g, ''); expect(normalizedGenerated).toEqual(normalizedOriginal); }); } } });