Skip to content

Commit

Permalink
test(stack/storage): updates dependencies and add missing tests
Browse files Browse the repository at this point in the history
  • Loading branch information
0x-r4bbit committed Mar 3, 2020
1 parent 719faee commit 7215d0e
Show file tree
Hide file tree
Showing 2 changed files with 145 additions and 4 deletions.
24 changes: 20 additions & 4 deletions packages/stack/storage/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,8 @@
"lint": "eslint src/",
"qa": "npm-run-all lint _typecheck _build",
"reset": "npx rimraf dist embark-*.tgz package",
"solo": "embark-solo"
"solo": "embark-solo",
"test": "jest"
},
"eslintConfig": {
"extends": "../../../.eslintrc.json"
Expand All @@ -50,11 +51,11 @@
"core-js": "3.4.3",
"embark-core": "^5.3.0-nightly.1",
"embark-i18n": "^5.2.3",
"embark-utils": "^5.3.0-nightly.0",
"lodash.clonedeep": "4.5.0",
"shelljs": "0.8.3"
"embark-utils": "^5.3.0-nightly.0"
},
"devDependencies": {
"@babel/core": "7.8.3",
"babel-jest": "25.1.0",
"embark-solo": "^5.2.3",
"eslint": "6.8.0",
"npm-run-all": "4.1.5",
Expand All @@ -64,5 +65,20 @@
"node": ">=10.17.0",
"npm": ">=6.11.3",
"yarn": ">=1.19.1"
},
"jest": {
"collectCoverage": true,
"testEnvironment": "node",
"testMatch": [
"**/test/**/*.js"
],
"transform": {
"\\.(js|ts)$": [
"babel-jest",
{
"rootMode": "upward"
}
]
}
}
}
125 changes: 125 additions & 0 deletions packages/stack/storage/test/storage.spec.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,125 @@
import sinon from 'sinon';
import assert from 'assert';
import { fakeEmbark } from 'embark-testing';
import Storage from '../src';

describe('stack/storage', () => {

let storage, embark;

beforeEach(() => {
const testBed = fakeEmbark({
storageConfig: {
dappConnection: {
foo: 'bar'
}
},
embarkConfig: {
generationDir: 'foo'
}
});

embark = testBed.embark;
storage = new Storage(embark, { plugins: testBed.plugins });
});

afterEach(() => {
embark.teardown();
sinon.restore();
});


describe('instantiation', () => {

it('should register storage:node:register command handler', () => {
storage.events.assert.commandHandlerRegistered('storage:node:register');
});

it('should register storage:node:start command handler', () => {
storage.events.assert.commandHandlerRegistered('storage:node:start');
});

it('should register storage:upload:register command handler', () => {
storage.events.assert.commandHandlerRegistered('storage:upload:register');
});

it('should register storage:upload command handler', () => {
storage.events.assert.commandHandlerRegistered('storage:upload');
});
});

it('should register a node', () => {

const startFunction = sinon.fake();

embark.events.request('storage:node:register', 'testNode', startFunction);
assert(storage.storageNodes['testNode']);
assert.equal(storage.storageNodes['testNode'], startFunction);
});

it('should start registered node', done => {

const startFunction = sinon.spy(cb => cb());

const storageConfig = {
enabled: true,
upload: {
provider: 'testProvider'
}
};

embark.events.request('storage:node:register', 'testProvider', startFunction);
embark.events.request('storage:node:start', storageConfig, err => {
assert(startFunction.calledOnce);
done();
});
});

it('should not start node if storage is disabled', done => {

const startFunction = sinon.spy(cb => cb());

const storageConfig = {
enabled: false,
upload: {
provider: 'testProvider'
}
};

embark.events.request('storage:node:register', 'testProvider', startFunction);
embark.events.request('storage:node:start', storageConfig, err => {
assert(!startFunction.calledOnce);
done();
});
});

it('should register an upload node', () => {

const uploadFn = sinon.fake();

embark.events.request('storage:upload:register', 'testNode', uploadFn);
assert(storage.uploadNodes['testNode']);
assert.equal(storage.uploadNodes['testNode'], uploadFn);
});

it('should upload data using registerd upload function', done => {

const uploadFn = sinon.spy(cb => cb());

embark.events.request('storage:upload:register', 'testNode', uploadFn);
embark.events.request('storage:upload', 'testNode', err => {
assert(uploadFn.calledOnce);
done();
});
});

it('should register action for pipeline:generateAll:before', done => {
const pipelineRegisterHandler = sinon.spy((params, cb) => cb());
embark.events.setCommandHandler('pipeline:register', pipelineRegisterHandler);
embark.plugins.runActionsForEvent('pipeline:generateAll:before', () => {
assert(pipelineRegisterHandler.calledOnce);
done();
});
});
});

0 comments on commit 7215d0e

Please sign in to comment.