import { executeCommand } from '../src/helper' import { paths } from '../src/entities' describe('Set of --combined-json tests', () => { const zksolcCommand = 'zksolc' const solcCommand = 'solc' const json_args: string[] = [ `abi`, `hashes`, `metadata`, `devdoc`, `userdoc`, `storage-layout`, `ast`, `asm`, `bin`, `bin-runtime`, ] //id1742:I describe(`Run ${zksolcCommand} with just --combined-json`, () => { const args = [`--combined-json`] const result = executeCommand(zksolcCommand, args) it('Valid command exit code = 1', () => { expect(result.exitCode).toBe(1) }) it('--combined-json error is presented', () => { expect(result.output).toMatch(/(requires a value but none was supplied)/i) }) it('solc exit code == zksolc exit code', () => { const solcResult = executeCommand(solcCommand, args) expect(solcResult.exitCode).toBe(result.exitCode) }) }) //id1742:II describe(`Run ${zksolcCommand} with Sol contract and --combined-json`, () => { const args = [`${paths.pathToBasicSolContract}`, `--combined-json`] const result = executeCommand(zksolcCommand, args) it('Valid command exit code = 1', () => { expect(result.exitCode).toBe(1) }) it('--combined-json error is presented', () => { expect(result.output).toMatch(/(requires a value but none was supplied)/i) }) it('solc exit code == zksolc exit code', () => { const solcResult = executeCommand(solcCommand, args) expect(solcResult.exitCode).toBe(result.exitCode) }) }) //id1742:III for (let i = 0; i < json_args.length; i++) { describe(`Run ${zksolcCommand} with Sol, --combined-json and ARG: ${json_args[i]}`, () => { const args = [ `${paths.pathToBasicSolContract}`, `--combined-json`, `${json_args[i]}`, ] const result = executeCommand(zksolcCommand, args) it('Valid command exit code = 0', () => { expect(result.exitCode).toBe(0) }) it('--combined-json error is presented', () => { expect(result.output).toMatch(/(contracts)/i) }) it('solc exit code == zksolc exit code', () => { const solcResult = executeCommand(solcCommand, args) expect(solcResult.exitCode).toBe(result.exitCode) }) }) } //id1829:I for (let i = 0; i < json_args.length; i++) { describe(`Run ${zksolcCommand} with Sol, --combined-json and wrong ARG: --${json_args[i]}`, () => { const args = [ `${paths.pathToBasicSolContract}`, `--combined-json`, `--${json_args[i]}`, ] const result = executeCommand(zksolcCommand, args) it('Valid command exit code = 1', () => { expect(result.exitCode).toBe(1) }) it('--combined-json error is presented', () => { expect(result.output).toMatch(/(Invalid option|error)/i) }) it('solc exit code == zksolc exit code', () => { const solcResult = executeCommand(solcCommand, args) expect(solcResult.exitCode).toBe(result.exitCode) }) }) } //id1829:II for (let i = 0; i < json_args.length; i++) { describe(`Run ${zksolcCommand} with Sol, --combined-json and multiple ARG: ${json_args[i]} ${json_args[i]}`, () => { const args = [ `${paths.pathToBasicSolContract}`, `--combined-json`, `${json_args[i]}`, `${json_args[i]}`, ] const result = executeCommand(zksolcCommand, args) xit('Valid command exit code = 1', () => { expect(result.exitCode).toBe(1) }) it('--combined-json error is presented', () => { expect(result.output).toMatch( /(No such file or directory|cannot find the file specified)/i ) // Hopefully we should have more precise message here! }) xit('solc exit code == zksolc exit code', () => { const solcResult = executeCommand(solcCommand, args) expect(solcResult.exitCode).toBe(result.exitCode) }) }) } //id1829:III for (let i = 0; i < json_args.length; i++) { describe(`Run ${zksolcCommand} with Sol, and multiple (--combined-json ${json_args[i]})`, () => { const args = [ `${paths.pathToBasicSolContract}`, `--combined-json`, `${json_args[i]}`, `--combined-json`, `${json_args[i]}`, ] const result = executeCommand(zksolcCommand, args) it('Valid command exit code = 1', () => { expect(result.exitCode).toBe(1) }) it('--combined-json error is presented', () => { expect(result.output).toMatch(/(cannot be used multiple times)/i) }) it('solc exit code == zksolc exit code', () => { const solcResult = executeCommand(solcCommand, args) expect(solcResult.exitCode).toBe(result.exitCode) }) }) } //id1830 for (let i = 0; i < json_args.length; i++) { describe(`Run ${zksolcCommand} with Yul, and --combined-json ${json_args[i]}`, () => { const args = [ `${paths.pathToBasicYulContract}`, `--combined-json`, `${json_args[i]}`, ] const result = executeCommand(zksolcCommand, args) it('Valid command exit code = 1', () => { expect(result.exitCode).toBe(1) }) it('--combined-json error is presented', () => { expect(result.output).toMatch(/(ParserError: Expected identifier)/i) }) asd it('solc exit code == zksolc exit code', () => { const solcResult = executeCommand(solcCommand, args) expect(solcResult.exitCode).toBe(result.exitCode) }) }) } })