mirror of
https://github.com/pezkuwichain/revive.git
synced 2026-04-23 04:58:01 +00:00
Run lint:fix
This commit is contained in:
+106
-110
@@ -1,142 +1,138 @@
|
||||
import { expect } from "chai";
|
||||
import { compile } from "../examples/node/revive.js";
|
||||
import { fileURLToPath } from "url";
|
||||
import path from "path";
|
||||
import fs from "fs";
|
||||
const __filename = fileURLToPath(import.meta.url);
|
||||
const __dirname = path.dirname(__filename);
|
||||
import { expect } from 'chai'
|
||||
import { compile } from '../examples/node/revive.js'
|
||||
import { fileURLToPath } from 'url'
|
||||
import path from 'path'
|
||||
import fs from 'fs'
|
||||
const __filename = fileURLToPath(import.meta.url)
|
||||
const __dirname = path.dirname(__filename)
|
||||
|
||||
function loadFixture(fixture) {
|
||||
const fixturePath = path.resolve(__dirname, `../fixtures/${fixture}`);
|
||||
return JSON.parse(fs.readFileSync(fixturePath, "utf-8"));
|
||||
const fixturePath = path.resolve(__dirname, `../fixtures/${fixture}`)
|
||||
return JSON.parse(fs.readFileSync(fixturePath, 'utf-8'))
|
||||
}
|
||||
|
||||
describe("Compile Function Tests", function () {
|
||||
it("should successfully compile valid Solidity code", async function () {
|
||||
const standardInput = loadFixture("storage.json");
|
||||
describe('Compile Function Tests', function () {
|
||||
it('should successfully compile valid Solidity code', async function () {
|
||||
const standardInput = loadFixture('storage.json')
|
||||
|
||||
const result = await compile(standardInput);
|
||||
expect(result).to.be.a("string");
|
||||
const output = JSON.parse(result);
|
||||
expect(output).to.have.property("contracts");
|
||||
expect(output.contracts["fixtures/storage.sol"]).to.have.property(
|
||||
"Storage",
|
||||
);
|
||||
expect(output.contracts["fixtures/storage.sol"].Storage).to.have.property(
|
||||
"abi",
|
||||
);
|
||||
expect(output.contracts["fixtures/storage.sol"].Storage).to.have.property(
|
||||
"evm",
|
||||
);
|
||||
const result = await compile(standardInput)
|
||||
expect(result).to.be.a('string')
|
||||
const output = JSON.parse(result)
|
||||
expect(output).to.have.property('contracts')
|
||||
expect(output.contracts['fixtures/storage.sol']).to.have.property('Storage')
|
||||
expect(output.contracts['fixtures/storage.sol'].Storage).to.have.property(
|
||||
'abi'
|
||||
)
|
||||
expect(output.contracts['fixtures/storage.sol'].Storage).to.have.property(
|
||||
'evm'
|
||||
)
|
||||
expect(
|
||||
output.contracts["fixtures/storage.sol"].Storage.evm,
|
||||
).to.have.property("bytecode");
|
||||
});
|
||||
output.contracts['fixtures/storage.sol'].Storage.evm
|
||||
).to.have.property('bytecode')
|
||||
})
|
||||
|
||||
if (typeof globalThis.Bun == "undefined") {
|
||||
if (typeof globalThis.Bun == 'undefined') {
|
||||
// Running this test with Bun on a Linux host causes:
|
||||
// RuntimeError: Out of bounds memory access (evaluating 'getWasmTableEntry(index)(a1, a2, a3, a4, a5)')
|
||||
// Once this issue is resolved, the test will be re-enabled.
|
||||
it("should successfully compile large Solidity code", async function () {
|
||||
const standardInput = loadFixture("token.json");
|
||||
it('should successfully compile large Solidity code', async function () {
|
||||
const standardInput = loadFixture('token.json')
|
||||
|
||||
const result = await compile(standardInput);
|
||||
expect(result).to.be.a("string");
|
||||
const output = JSON.parse(result);
|
||||
expect(output).to.have.property("contracts");
|
||||
expect(output.contracts["fixtures/token.sol"]).to.have.property(
|
||||
"MyToken",
|
||||
);
|
||||
expect(output.contracts["fixtures/token.sol"].MyToken).to.have.property(
|
||||
"abi",
|
||||
);
|
||||
expect(output.contracts["fixtures/token.sol"].MyToken).to.have.property(
|
||||
"evm",
|
||||
);
|
||||
const result = await compile(standardInput)
|
||||
expect(result).to.be.a('string')
|
||||
const output = JSON.parse(result)
|
||||
expect(output).to.have.property('contracts')
|
||||
expect(output.contracts['fixtures/token.sol']).to.have.property('MyToken')
|
||||
expect(output.contracts['fixtures/token.sol'].MyToken).to.have.property(
|
||||
'abi'
|
||||
)
|
||||
expect(output.contracts['fixtures/token.sol'].MyToken).to.have.property(
|
||||
'evm'
|
||||
)
|
||||
expect(
|
||||
output.contracts["fixtures/token.sol"].MyToken.evm,
|
||||
).to.have.property("bytecode");
|
||||
});
|
||||
output.contracts['fixtures/token.sol'].MyToken.evm
|
||||
).to.have.property('bytecode')
|
||||
})
|
||||
|
||||
it("should successfully compile a valid Solidity contract that instantiates the token contracts", async function () {
|
||||
const standardInput = loadFixture("instantiate_tokens.json");
|
||||
it('should successfully compile a valid Solidity contract that instantiates the token contracts', async function () {
|
||||
const standardInput = loadFixture('instantiate_tokens.json')
|
||||
|
||||
const result = await compile(standardInput);
|
||||
expect(result).to.be.a("string");
|
||||
const output = JSON.parse(result);
|
||||
expect(output).to.have.property("contracts");
|
||||
const result = await compile(standardInput)
|
||||
expect(result).to.be.a('string')
|
||||
const output = JSON.parse(result)
|
||||
expect(output).to.have.property('contracts')
|
||||
expect(
|
||||
output.contracts["fixtures/instantiate_tokens.sol"],
|
||||
).to.have.property("TokensFactory");
|
||||
output.contracts['fixtures/instantiate_tokens.sol']
|
||||
).to.have.property('TokensFactory')
|
||||
expect(
|
||||
output.contracts["fixtures/instantiate_tokens.sol"].TokensFactory,
|
||||
).to.have.property("abi");
|
||||
output.contracts['fixtures/instantiate_tokens.sol'].TokensFactory
|
||||
).to.have.property('abi')
|
||||
expect(
|
||||
output.contracts["fixtures/instantiate_tokens.sol"].TokensFactory,
|
||||
).to.have.property("evm");
|
||||
output.contracts['fixtures/instantiate_tokens.sol'].TokensFactory
|
||||
).to.have.property('evm')
|
||||
expect(
|
||||
output.contracts["fixtures/instantiate_tokens.sol"].TokensFactory.evm,
|
||||
).to.have.property("bytecode");
|
||||
});
|
||||
output.contracts['fixtures/instantiate_tokens.sol'].TokensFactory.evm
|
||||
).to.have.property('bytecode')
|
||||
})
|
||||
}
|
||||
|
||||
it("should throw an error for invalid Solidity code", async function () {
|
||||
const standardInput = loadFixture("invalid_contract_content.json");
|
||||
it('should throw an error for invalid Solidity code', async function () {
|
||||
const standardInput = loadFixture('invalid_contract_content.json')
|
||||
|
||||
const result = await compile(standardInput);
|
||||
expect(result).to.be.a("string");
|
||||
const output = JSON.parse(result);
|
||||
expect(output).to.have.property("errors");
|
||||
expect(output.errors).to.be.an("array");
|
||||
expect(output.errors.length).to.be.greaterThan(0);
|
||||
expect(output.errors[0].type).to.exist;
|
||||
expect(output.errors[0].type).to.contain("ParserError");
|
||||
});
|
||||
const result = await compile(standardInput)
|
||||
expect(result).to.be.a('string')
|
||||
const output = JSON.parse(result)
|
||||
expect(output).to.have.property('errors')
|
||||
expect(output.errors).to.be.an('array')
|
||||
expect(output.errors.length).to.be.greaterThan(0)
|
||||
expect(output.errors[0].type).to.exist
|
||||
expect(output.errors[0].type).to.contain('ParserError')
|
||||
})
|
||||
|
||||
it("should return not found error for missing imports", async function () {
|
||||
const standardInput = loadFixture("missing_import.json");
|
||||
it('should return not found error for missing imports', async function () {
|
||||
const standardInput = loadFixture('missing_import.json')
|
||||
|
||||
const result = await compile(standardInput);
|
||||
const output = JSON.parse(result);
|
||||
expect(output).to.have.property("errors");
|
||||
expect(output.errors).to.be.an("array");
|
||||
expect(output.errors.length).to.be.greaterThan(0);
|
||||
expect(output.errors[0].message).to.exist;
|
||||
const result = await compile(standardInput)
|
||||
const output = JSON.parse(result)
|
||||
expect(output).to.have.property('errors')
|
||||
expect(output.errors).to.be.an('array')
|
||||
expect(output.errors.length).to.be.greaterThan(0)
|
||||
expect(output.errors[0].message).to.exist
|
||||
expect(output.errors[0].message).to.include(
|
||||
'Source "nonexistent/console.sol" not found',
|
||||
);
|
||||
});
|
||||
'Source "nonexistent/console.sol" not found'
|
||||
)
|
||||
})
|
||||
|
||||
it("should successfully compile a valid Solidity contract that instantiates another contract", async function () {
|
||||
const standardInput = loadFixture("instantiate.json");
|
||||
it('should successfully compile a valid Solidity contract that instantiates another contract', async function () {
|
||||
const standardInput = loadFixture('instantiate.json')
|
||||
|
||||
const result = await compile(standardInput);
|
||||
expect(result).to.be.a("string");
|
||||
const output = JSON.parse(result);
|
||||
expect(output).to.have.property("contracts");
|
||||
expect(output.contracts["fixtures/instantiate.sol"]).to.have.property(
|
||||
"ChildContract",
|
||||
);
|
||||
const result = await compile(standardInput)
|
||||
expect(result).to.be.a('string')
|
||||
const output = JSON.parse(result)
|
||||
expect(output).to.have.property('contracts')
|
||||
expect(output.contracts['fixtures/instantiate.sol']).to.have.property(
|
||||
'ChildContract'
|
||||
)
|
||||
expect(
|
||||
output.contracts["fixtures/instantiate.sol"].ChildContract,
|
||||
).to.have.property("abi");
|
||||
output.contracts['fixtures/instantiate.sol'].ChildContract
|
||||
).to.have.property('abi')
|
||||
expect(
|
||||
output.contracts["fixtures/instantiate.sol"].ChildContract,
|
||||
).to.have.property("evm");
|
||||
output.contracts['fixtures/instantiate.sol'].ChildContract
|
||||
).to.have.property('evm')
|
||||
expect(
|
||||
output.contracts["fixtures/instantiate.sol"].ChildContract.evm,
|
||||
).to.have.property("bytecode");
|
||||
expect(output.contracts["fixtures/instantiate.sol"]).to.have.property(
|
||||
"MainContract",
|
||||
);
|
||||
output.contracts['fixtures/instantiate.sol'].ChildContract.evm
|
||||
).to.have.property('bytecode')
|
||||
expect(output.contracts['fixtures/instantiate.sol']).to.have.property(
|
||||
'MainContract'
|
||||
)
|
||||
expect(
|
||||
output.contracts["fixtures/instantiate.sol"].MainContract,
|
||||
).to.have.property("abi");
|
||||
output.contracts['fixtures/instantiate.sol'].MainContract
|
||||
).to.have.property('abi')
|
||||
expect(
|
||||
output.contracts["fixtures/instantiate.sol"].MainContract,
|
||||
).to.have.property("evm");
|
||||
output.contracts['fixtures/instantiate.sol'].MainContract
|
||||
).to.have.property('evm')
|
||||
expect(
|
||||
output.contracts["fixtures/instantiate.sol"].MainContract.evm,
|
||||
).to.have.property("bytecode");
|
||||
});
|
||||
});
|
||||
output.contracts['fixtures/instantiate.sol'].MainContract.evm
|
||||
).to.have.property('bytecode')
|
||||
})
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user