UNPKG

@solvprotocol/upgrade-safe-transpiler

Version:

Solidity preprocessor used to generate OpenZeppelin Contracts Upgrade Safe.

47 lines (37 loc) 1.32 kB
import _test, { TestFn } from 'ava'; import { getBuildInfo } from './test-utils/get-build-info'; import { SolcOutput } from './solc/input-output'; import { findAlreadyInitializable } from './find-already-initializable'; const test = _test as TestFn<Context>; interface Context { solcOutput: SolcOutput; } test.serial.before('compile', async t => { t.context.solcOutput = (await getBuildInfo('0.6')).output as SolcOutput; }); test('ok', t => { const alreadyInit = findAlreadyInitializable( t.context.solcOutput, 'contracts/find-already-init/Init1.sol', ); t.deepEqual(['contracts/find-already-init/AlreadyOk.sol'], alreadyInit); }); test('mixed', t => { t.throws( () => findAlreadyInitializable(t.context.solcOutput, 'contracts/find-already-init/Init2.sol'), { message: /contains both Initializable and non-Initializable/ }, ); }); test('no Initializable contract', t => { t.throws( () => findAlreadyInitializable(t.context.solcOutput, 'contracts/find-already-init/NoInit.sol'), { message: /does not contain Initializable/ }, ); }); test('more than Initializable contract', t => { t.throws( () => findAlreadyInitializable(t.context.solcOutput, 'contracts/find-already-init/InitPlus.sol'), { message: /contains contracts other than Initializable/ }, ); });