5e24060b25
tslint has been deprecated so it's nice to switch to eslint. Currently this uses a minimal eslint, to get things up and running. Change-Id: If0ca6413b534b0aa15f6130a0a809e002d817356
75 lines
2.1 KiB
TypeScript
75 lines
2.1 KiB
TypeScript
// Copyright (C) 2021 Storj Labs, Inc.
|
|
// See LICENSE for copying information.
|
|
|
|
import Vuex from 'vuex';
|
|
|
|
import { RootState } from '@/app/store';
|
|
import { BandwidthRollup, BandwidthTraffic, Egress, Ingress } from '@/bandwidth';
|
|
import { createLocalVue } from '@vue/test-utils';
|
|
|
|
import store, { bandwidthService } from '../mock/store';
|
|
|
|
const state = store.state as RootState;
|
|
|
|
const mockedDate1 = new Date(Date.UTC(2020, 1, 30));
|
|
const mockedDate2 = new Date(1573562290000); // Tue Nov 12 2019
|
|
const traffic = new BandwidthTraffic(
|
|
[
|
|
new BandwidthRollup(
|
|
new Egress(1220000, 600000, 1245500000),
|
|
new Ingress(4000000, 1111),
|
|
80080080,
|
|
mockedDate1,
|
|
),
|
|
new BandwidthRollup(
|
|
new Egress(122000000, 23500000, 15500000),
|
|
new Ingress(40000, 11110000),
|
|
80080080,
|
|
mockedDate2,
|
|
),
|
|
],
|
|
700000000,
|
|
577700000000,
|
|
5000000,
|
|
);
|
|
|
|
describe('mutations', () => {
|
|
beforeEach(() => {
|
|
createLocalVue().use(Vuex);
|
|
});
|
|
|
|
it('populates traffic', () => {
|
|
store.commit('bandwidth/populate', traffic);
|
|
|
|
expect(state.bandwidth.traffic.bandwidthSummary).toBe(traffic.bandwidthSummary);
|
|
});
|
|
});
|
|
|
|
describe('actions', () => {
|
|
beforeEach(() => {
|
|
jest.resetAllMocks();
|
|
store.commit('bandwidth/populate', new BandwidthTraffic());
|
|
});
|
|
|
|
it('throws error on failed bandwidth fetch', async() => {
|
|
jest.spyOn(bandwidthService, 'fetch').mockImplementation(() => { throw new Error(); });
|
|
|
|
try {
|
|
await store.dispatch('bandwidth/fetch');
|
|
expect(true).toBe(false);
|
|
} catch (error) {
|
|
expect(state.bandwidth.traffic.bandwidthSummary).toBe(0);
|
|
}
|
|
});
|
|
|
|
it('success fetches payouts summary', async() => {
|
|
jest.spyOn(bandwidthService, 'fetch').mockReturnValue(
|
|
Promise.resolve(traffic),
|
|
);
|
|
|
|
await store.dispatch('bandwidth/fetch');
|
|
|
|
expect(state.bandwidth.traffic.bandwidthDaily.length).toBe(traffic.bandwidthDaily.length);
|
|
});
|
|
});
|