mirror of
https://github.com/embarklabs/embark.git
synced 2025-01-12 23:05:07 +00:00
991d958436
[PR 1318][PR1318] introduces a monorepo member that's used as a DApp dependency, but the present arrangement whereby `test_dapps/` is an embedded monorepo makes it difficult to develop and test such packages in tandem with changes to `test_dapps/packages/*`. Reorganize `test_dapps/*` as members of the root monorepo and make various adjustments accordingly. This makes it easy to develop test dapps and any packages they depend on simultaneously, but we lose the CI/QA arrangement where test dapps are run with an embark installed from fresh tarballs. That arrangement, which is quite worthwhile as a means to detect problems arising from transitive dependencies as soon as possible, will be re-introduced in another PR, possibly involving an auxiliary repository such as embark-framework/dapp-bin. Since the `package.json` `"test"` scripts of `test_dapps/*` are now kicked off as part of `yarn test` in the root, and since port allocation isn't fully dynamic, it's important to run `yarn test` with `lerna run`'s `--concurrency=1` option. For the same reasons, the root `ci` and `qa` scripts are similarly restricted. In the future, this setup can be refactored and improved, along with use of `lerna run`'s `--since` option to increase testing efficiency in CI. [PR1318]: https://github.com/embark-framework/embark/pull/1318
83 lines
2.1 KiB
JavaScript
83 lines
2.1 KiB
JavaScript
/*global describe, config, it*/
|
|
const assert = require('assert');
|
|
const Token = require('Embark/contracts/Token');
|
|
const MyToken = require('Embark/contracts/MyToken');
|
|
const MyToken2 = require('Embark/contracts/MyToken2');
|
|
const AlreadyDeployedToken = require('Embark/contracts/AlreadyDeployedToken');
|
|
const Test = require('Embark/contracts/Test');
|
|
|
|
config({
|
|
contracts: {
|
|
ZAMyLib: {},
|
|
SimpleStorage: {
|
|
args: [100]
|
|
},
|
|
AnotherStorage: {
|
|
args: ["$SimpleStorage", "0xCAFECAFECAFECAFECAFECAFECAFECAFECAFECAFE"]
|
|
},
|
|
Token: {
|
|
deploy: false,
|
|
args: [1000]
|
|
},
|
|
MyToken: {
|
|
instanceOf: "Token"
|
|
},
|
|
MyToken2: {
|
|
instanceOf: "Token",
|
|
args: [2000]
|
|
},
|
|
AlreadyDeployedToken: {
|
|
address: "0xCAFECAFECAFECAFECAFECAFECAFECAFECAFECAFE",
|
|
instanceOf: "Token"
|
|
},
|
|
Test: {
|
|
onDeploy: ["Test.methods.changeAddress('$MyToken').send()"]
|
|
},
|
|
ContractArgs: {
|
|
args: {
|
|
initialValue: 123,
|
|
_addresses: ["$MyToken2", "$SimpleStorage"]
|
|
}
|
|
},
|
|
SomeContract: {
|
|
args: [
|
|
["$MyToken2", "$SimpleStorage"],
|
|
100
|
|
]
|
|
}
|
|
}
|
|
});
|
|
|
|
describe("Token", function () {
|
|
this.timeout(0);
|
|
|
|
it("not deploy Token", function () {
|
|
assert.strictEqual(Token.address, undefined);
|
|
});
|
|
|
|
it("should deploy MyToken and MyToken2", function () {
|
|
assert.ok(MyToken.options.address);
|
|
assert.ok(MyToken2.options.address);
|
|
});
|
|
|
|
it("set MyToken Balance correctly", async function () {
|
|
let result = await MyToken.methods._supply().call();
|
|
assert.strictEqual(parseInt(result, 10), 1000);
|
|
});
|
|
|
|
it("set MyToken2 Balance correctly", async function () {
|
|
let result = await MyToken2.methods._supply().call();
|
|
assert.strictEqual(parseInt(result, 10), 2000);
|
|
});
|
|
|
|
it("get right address", function () {
|
|
assert.strictEqual(AlreadyDeployedToken.options.address.toLowerCase(),
|
|
"0xCAFECAFECAFECAFECAFECAFECAFECAFECAFECAFE".toLowerCase());
|
|
});
|
|
|
|
it("should use onDeploy", async function () {
|
|
let result = await Test.methods.addr().call();
|
|
assert.strictEqual(result, MyToken.options.address);
|
|
});
|
|
});
|