Skip to content

Commit

Permalink
Merge pull request #18 from nearprotocol/j-newprojlog
Browse files Browse the repository at this point in the history
Add easy npm option for running test on devnet
  • Loading branch information
janedegtiareva committed Mar 26, 2019
2 parents da96af1 + 93544c8 commit a4ff0d7
Show file tree
Hide file tree
Showing 3 changed files with 69 additions and 16 deletions.
67 changes: 67 additions & 0 deletions blank_project/devnet_test_environment.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
const NodeEnvironment = require('jest-environment-node');
const dev = require('nearlib/dev');
const fs = require('fs');
const nearlib = require('nearlib');


class LocalTestEnvironment extends NodeEnvironment {
constructor(config) {
super(config);
}

async setup() {
this.global.nearlib = require('nearlib');
this.global.nearlib.dev = require('nearlib/dev');
this.global.window = {};
this.global.testSettings = {
contractName: "test" + Date.now(),
accountId: "test" + Date.now(),
nodeUrl: "https://studio.nearprotocol.com/devnet",
deps: {
storage: this.createFakeStorage(),
keyStore: new nearlib.InMemoryKeyStore(),
createAccount: dev.createAccountWithLocalNodeConnection
}
};
const near = await dev.connect(this.global.testSettings);

const keyWithRandomSeed = await nearlib.KeyPair.fromRandomSeed();
await dev.createAccountWithLocalNodeConnection(this.global.testSettings.contractName, keyWithRandomSeed.getPublicKey());
this.global.testSettings.deps.keyStore.setKey(this.global.testSettings.contractName, keyWithRandomSeed);

// deploy contract
const data = [...fs.readFileSync('./out/main.wasm')];
await near.waitForTransactionResult(
await near.deployContract(this.global.testSettings.contractName, data));

await super.setup();
}

async teardown() {
await super.teardown();
}

runScript(script) {
return super.runScript(script);
}

createFakeStorage() {
let store = {};
return {
getItem: function(key) {
return store[key];
},
setItem: function(key, value) {
store[key] = value.toString();
},
clear: function() {
store = {};
},
removeItem: function(key) {
delete store[key];
}
};
};
}

module.exports = LocalTestEnvironment
15 changes: 0 additions & 15 deletions blank_project/local_test_environment.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,21 +10,6 @@ class LocalTestEnvironment extends NodeEnvironment {
}

async setup() {
this.global.ArrayBuffer = ArrayBuffer;
this.global.DataView = DataView;

this.global.Uint8Array = Uint8Array;
this.global.Uint8ClampedArray = Uint8ClampedArray;
this.global.Uint16Array = Uint16Array;
this.global.Uint32Array = Uint32Array;
this.global.Int8Array = Int8Array;
this.global.Int16Array = Int16Array;
this.global.Int32Array = Int32Array;
this.global.Float32Array = Float32Array;
this.global.Float64Array = Float64Array;
this.global.Map = Map;
this.global.Set = Set;
this.global.Promise = Promise;
this.global.nearlib = require('nearlib');
this.global.nearlib.dev = require('nearlib/dev');
this.global.window = {};
Expand Down
3 changes: 2 additions & 1 deletion blank_project/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@
"version": "1.0.0",
"scripts": {
"build": "node_modules/near-shell/near build",
"test": "jest test --env=./local_test_environment.js"
"test": "jest test --env=./local_test_environment.js",
"test-on-devnet": "jest test --env=./devnet_test_environment.js"
},
"devDependencies": {
"assemblyscript": "github:nearprotocol/assemblyscript.git",
Expand Down

0 comments on commit a4ff0d7

Please sign in to comment.