2020-01-21 21:21:19 +01:00
|
|
|
import { assert, spy, use } from 'chai'
|
|
|
|
import spies from 'chai-spies'
|
|
|
|
|
|
|
|
import { Ocean } from '../../src/ocean/Ocean'
|
|
|
|
import config from '../config'
|
|
|
|
import { Account } from '../../src/squid'
|
|
|
|
import { OceanCompute } from '../../src/ocean/OceanCompute'
|
|
|
|
|
|
|
|
use(spies)
|
|
|
|
|
|
|
|
const responsify = async data => ({
|
|
|
|
ok: true,
|
|
|
|
json: () => Promise.resolve(data)
|
|
|
|
})
|
|
|
|
|
|
|
|
describe('OceanCompute', () => {
|
|
|
|
let ocean: Ocean
|
|
|
|
let account: Account
|
|
|
|
let compute: OceanCompute
|
|
|
|
|
|
|
|
before(async () => {
|
|
|
|
ocean = await Ocean.getInstance(config)
|
|
|
|
;[account] = await ocean.accounts.list()
|
|
|
|
compute = ocean.compute // eslint-disable-line prefer-destructuring
|
|
|
|
})
|
|
|
|
|
|
|
|
afterEach(() => {
|
|
|
|
spy.restore()
|
|
|
|
})
|
|
|
|
|
|
|
|
describe('#start()', () => {
|
|
|
|
it('should start a new job', async () => {
|
|
|
|
spy.on(ocean.utils.fetch, 'post', () => responsify({ jobId: 'my-job-id' }))
|
|
|
|
|
|
|
|
const response = await compute.start(account, 'xxx', 'xxx')
|
|
|
|
assert(response.jobId === 'my-job-id')
|
|
|
|
})
|
|
|
|
})
|
|
|
|
|
|
|
|
describe('#stop()', () => {
|
|
|
|
it('should stop a job', async () => {
|
|
|
|
spy.on(ocean.utils.fetch, 'put', () => responsify({ status: 6 }))
|
|
|
|
|
|
|
|
const response = await compute.stop(account, 'xxx', 'xxx')
|
|
|
|
assert(response.status === 6)
|
|
|
|
})
|
|
|
|
})
|
2020-01-22 11:30:27 +01:00
|
|
|
|
|
|
|
describe('#restart()', () => {
|
|
|
|
it('should restart a job', async () => {
|
|
|
|
spy.on(ocean.utils.fetch, 'put', () => responsify({ status: 6 }))
|
|
|
|
spy.on(ocean.utils.fetch, 'post', () => responsify({ jobId: 'my-job-id' }))
|
|
|
|
|
|
|
|
const response = await compute.restart(account, 'xxx', 'xxx')
|
|
|
|
assert(response.jobId === 'my-job-id')
|
|
|
|
})
|
|
|
|
})
|
|
|
|
|
|
|
|
describe('#delete()', () => {
|
|
|
|
it('should delete a job', async () => {
|
|
|
|
spy.on(ocean.utils.fetch, 'delete', () => responsify({ status: 8 }))
|
|
|
|
|
|
|
|
const response = await compute.delete(account, 'xxx', 'xxx')
|
|
|
|
assert(response.status === 8)
|
|
|
|
})
|
|
|
|
})
|
|
|
|
|
|
|
|
describe('#status()', () => {
|
|
|
|
it('should get the status of one job', async () => {
|
|
|
|
spy.on(ocean.utils.fetch, 'get', () => responsify([{ status: 1 }]))
|
|
|
|
|
|
|
|
const response = await compute.status(account, 'xxx', 'xxx')
|
|
|
|
assert(response.length === 1)
|
|
|
|
assert(response[0].status === 1)
|
|
|
|
})
|
|
|
|
|
|
|
|
it('should get the status of multiple jobs', async () => {
|
|
|
|
spy.on(ocean.utils.fetch, 'get', () =>
|
|
|
|
responsify([{ status: 1 }, { status: 1 }])
|
|
|
|
)
|
|
|
|
|
|
|
|
const response = await compute.status(account, 'xxx')
|
|
|
|
assert(response.length === 2)
|
|
|
|
assert(response[0].status === 1)
|
|
|
|
})
|
|
|
|
|
|
|
|
it('should get all jobs for one owner', async () => {
|
|
|
|
spy.on(ocean.utils.fetch, 'get', () =>
|
|
|
|
responsify([{ status: 1 }, { status: 1 }])
|
|
|
|
)
|
|
|
|
|
|
|
|
const response = await compute.status(account)
|
|
|
|
assert(response.length === 2)
|
|
|
|
assert(response[0].status === 1)
|
|
|
|
})
|
|
|
|
})
|
2020-01-21 21:21:19 +01:00
|
|
|
})
|