1
0
mirror of https://github.com/oceanprotocol-archive/squid-js.git synced 2024-02-02 15:31:51 +01:00
squid-js/test/ocean/OceanCompute.test.ts

107 lines
3.6 KiB
TypeScript
Raw Normal View History

import { assert } from 'chai'
import sinon from 'sinon'
2020-01-21 21:21:19 +01:00
import { Ocean } from '../../src/ocean/Ocean'
import config from '../config'
import { Account } from '../../src/squid'
2020-01-28 18:00:06 +01:00
import { OceanCompute, ComputeJobStatus } from '../../src/ocean/OceanCompute'
import TestIdGenerator from '../TestIdGenerator'
2020-01-21 21:21:19 +01:00
describe('OceanCompute', () => {
let ocean: Ocean
let account: Account
let compute: OceanCompute
let agreementId: string
2020-01-21 21:21:19 +01:00
before(async () => {
ocean = await Ocean.getInstance(config)
;[account] = await ocean.accounts.list()
compute = ocean.compute // eslint-disable-line prefer-destructuring
agreementId = TestIdGenerator.generatePrefixedId()
2020-01-21 21:21:19 +01:00
})
afterEach(() => {
sinon.reset()
sinon.restore()
2020-01-21 21:21:19 +01:00
})
describe('#start()', () => {
it('should start a new job', async () => {
sinon.stub(ocean.brizo, 'compute').returns({ jobId: 'my-job-id' } as any)
const response = await compute.start(account, agreementId, 'did:op:0xxx')
2020-01-21 21:21:19 +01:00
assert(response.jobId === 'my-job-id')
})
})
describe('#stop()', () => {
it('should stop a job', async () => {
sinon
.stub(ocean.brizo, 'compute')
.returns({ status: ComputeJobStatus.Completed } as any)
2020-01-21 21:21:19 +01:00
const response = await compute.stop(account, agreementId, 'xxx')
2020-01-28 18:00:06 +01:00
assert(response.status === ComputeJobStatus.Completed)
2020-01-21 21:21:19 +01:00
})
})
2020-01-22 11:30:27 +01:00
describe('#restart()', () => {
it('should restart a job', async () => {
sinon
.stub(ocean.brizo, 'compute')
.returns({ status: ComputeJobStatus.Started, jobId: 'my-job-id' } as any)
2020-01-22 11:30:27 +01:00
const response = await compute.restart(account, agreementId, 'xxx')
2020-01-22 11:30:27 +01:00
assert(response.jobId === 'my-job-id')
})
})
describe('#delete()', () => {
it('should delete a job', async () => {
sinon
.stub(ocean.brizo, 'compute')
.returns({ status: ComputeJobStatus.Deleted } as any)
2020-01-22 11:30:27 +01:00
const response = await compute.delete(account, agreementId, 'xxx')
2020-01-28 18:00:06 +01:00
assert(response.status === ComputeJobStatus.Deleted)
2020-01-22 11:30:27 +01:00
})
})
describe('#status()', () => {
it('should get the status of one job', async () => {
sinon
.stub(ocean.brizo, 'compute')
.returns([{ status: ComputeJobStatus.Started }] as any)
2020-01-22 11:30:27 +01:00
const response = await compute.status(account, agreementId, 'xxx')
2020-01-22 11:30:27 +01:00
assert(response.length === 1)
2020-01-28 18:00:06 +01:00
assert(response[0].status === ComputeJobStatus.Started)
2020-01-22 11:30:27 +01:00
})
it('should get the status of multiple jobs', async () => {
sinon
.stub(ocean.brizo, 'compute')
.returns([
2020-01-28 18:00:06 +01:00
{ status: ComputeJobStatus.Started },
{ status: ComputeJobStatus.Started }
] as any)
2020-01-22 11:30:27 +01:00
const response = await compute.status(account, agreementId)
2020-01-22 11:30:27 +01:00
assert(response.length === 2)
2020-01-28 18:00:06 +01:00
assert(response[0].status === ComputeJobStatus.Started)
2020-01-22 11:30:27 +01:00
})
it('should get all jobs for one owner', async () => {
sinon
.stub(ocean.brizo, 'compute')
.returns([
2020-01-28 18:00:06 +01:00
{ status: ComputeJobStatus.Started },
{ status: ComputeJobStatus.Started }
] as any)
2020-01-22 11:30:27 +01:00
const response = await compute.status(account)
assert(response.length === 2)
2020-01-28 18:00:06 +01:00
assert(response[0].status === ComputeJobStatus.Started)
2020-01-22 11:30:27 +01:00
})
})
2020-01-21 21:21:19 +01:00
})