@storacha/client
Version:
Client for the storacha.network w3up api
101 lines • 4.36 kB
JavaScript
import { randomCAR } from '../helpers/random.js';
import * as Test from '../test.js';
export const UploadClient = Test.withContext({
add: {
'should register an upload': async (assert, { client: alice, service, provisionsStorage, uploadTable }) => {
const car = await randomCAR(128);
const space = await alice.createSpace('test', {
skipGatewayAuthorization: true,
});
const auth = await space.createAuthorization(alice);
await alice.addSpace(auth);
await alice.setCurrentSpace(space.did());
// @ts-expect-error
await provisionsStorage.put({
provider: service.did(),
customer: 'did:mailto:alice@web.mail',
consumer: space.did(),
});
const result = await alice.capability.upload.add(car.roots[0], [car.cid]);
assert.deepEqual(result.root, car.roots[0]);
assert.deepEqual(await uploadTable.exists(space.did(), car.roots[0]), {
ok: true,
});
},
},
list: {
'should list uploads': async (assert, { client: alice, service, provisionsStorage, uploadTable }) => {
const car = await randomCAR(128);
const space = await alice.createSpace('test', {
skipGatewayAuthorization: true,
});
const auth = await space.createAuthorization(alice);
await alice.addSpace(auth);
await alice.setCurrentSpace(space.did());
// @ts-expect-error
await provisionsStorage.put({
provider: service.did(),
customer: 'did:mailto:alice@web.mail',
consumer: space.did(),
});
assert.deepEqual(await alice.capability.upload.list(), {
results: [],
size: 0,
});
await alice.capability.upload.add(car.roots[0], [car.cid]);
assert.deepEqual(await uploadTable.exists(space.did(), car.roots[0]), {
ok: true,
});
const list = await alice.capability.upload.list({ nonce: 'retry' });
const [entry] = list.results;
assert.deepEqual(entry.root, car.roots[0]);
},
},
remove: {
'should remove an upload': async (assert, { client: alice, uploadTable, provisionsStorage, service }) => {
const car = await randomCAR(128);
const space = await alice.createSpace('test', {
skipGatewayAuthorization: true,
});
const auth = await space.createAuthorization(alice);
await alice.addSpace(auth);
await alice.setCurrentSpace(space.did());
// @ts-expect-error
await provisionsStorage.put({
provider: service.did(),
customer: 'did:mailto:alice@web.mail',
consumer: space.did(),
});
await alice.capability.upload.add(car.roots[0], [car.cid]);
assert.deepEqual(await uploadTable.exists(space.did(), car.roots[0]), {
ok: true,
});
await alice.capability.upload.remove(car.roots[0]);
assert.deepEqual(await uploadTable.exists(space.did(), car.roots[0]), {
ok: false,
});
},
},
get: {
'should get an upload': async (assert, { client: alice, service, provisionsStorage }) => {
const car = await randomCAR(128);
const space = await alice.createSpace('test', {
skipGatewayAuthorization: true,
});
const auth = await space.createAuthorization(alice);
await alice.addSpace(auth);
await alice.setCurrentSpace(space.did());
// @ts-expect-error
await provisionsStorage.put({
provider: service.did(),
customer: 'did:mailto:alice@web.mail',
consumer: space.did(),
});
await alice.capability.upload.add(car.roots[0], [car.cid]);
const result = await alice.capability.upload.get(car.roots[0]);
assert.deepEqual(result.root, car.roots[0]);
},
},
});
Test.test({ UploadClient });
//# sourceMappingURL=upload.test.js.map