@web3-storage/w3up-client
Version:
Client for the web3.storage w3up api
118 lines • 4.7 kB
JavaScript
import { AgentData } from '@web3-storage/access/agent';
import { randomCAR } from '../helpers/random.js';
import { Client } from '../../src/client.js';
import * as Test from '../test.js';
export const StoreClient = Test.withContext({
'should store a CAR file': async (assert, { connection, provisionsStorage, storeTable }) => {
const alice = new Client(await AgentData.create(), {
// @ts-ignore
serviceConf: {
access: connection,
upload: connection,
},
});
const space = await alice.createSpace('test', {
skipGatewayAuthorization: true,
});
const auth = await space.createAuthorization(alice);
await alice.addSpace(auth);
await alice.setCurrentSpace(space.did());
// Then we setup a billing for this account
await provisionsStorage.put({
// @ts-expect-error
provider: connection.id.did(),
account: alice.agent.did(),
consumer: space.did(),
});
const car = await randomCAR(128);
const carCID = await alice.capability.store.add(car);
assert.deepEqual(await storeTable.exists(space.did(), car.cid), {
ok: true,
});
assert.equal(carCID.toString(), car.cid.toString());
},
'should list stored CARs': async (assert, { connection, provisionsStorage, storeTable }) => {
const alice = new Client(await AgentData.create(), {
// @ts-ignore
serviceConf: {
access: connection,
upload: connection,
},
});
const space = await alice.createSpace('test', {
skipGatewayAuthorization: true,
});
const auth = await space.createAuthorization(alice);
await alice.addSpace(auth);
await alice.setCurrentSpace(space.did());
// Then we setup a billing for this account
await provisionsStorage.put({
// @ts-expect-error
provider: connection.id.did(),
account: alice.agent.did(),
consumer: space.did(),
});
const car = await randomCAR(128);
const carCID = await alice.capability.store.add(car);
assert.deepEqual(carCID, car.cid);
const { results: [entry], } = await alice.capability.store.list();
assert.deepEqual(entry.link, car.cid);
assert.deepEqual(entry.size, car.size);
},
'should remove a stored CAR': async (assert, { connection, provisionsStorage }) => {
const alice = new Client(await AgentData.create(), {
// @ts-ignore
serviceConf: {
access: connection,
upload: connection,
},
});
const space = await alice.createSpace('test', {
skipGatewayAuthorization: true,
});
const auth = await space.createAuthorization(alice);
await alice.addSpace(auth);
await alice.setCurrentSpace(space.did());
// Then we setup a billing for this account
await provisionsStorage.put({
// @ts-expect-error
provider: connection.id.did(),
account: alice.agent.did(),
consumer: space.did(),
});
const car = await randomCAR(128);
const cid = await alice.capability.store.add(car);
const result = await alice.capability.store.remove(cid);
assert.ok(result.ok);
},
'should get a stored item': async (assert, { connection, provisionsStorage }) => {
const car = await randomCAR(128);
const alice = new Client(await AgentData.create(), {
// @ts-ignore
serviceConf: {
access: connection,
upload: connection,
},
});
const space = await alice.createSpace('test', {
skipGatewayAuthorization: true,
});
const auth = await space.createAuthorization(alice);
await alice.addSpace(auth);
await alice.setCurrentSpace(space.did());
// Then we setup a billing for this account
await provisionsStorage.put({
// @ts-expect-error
provider: connection.id.did(),
account: alice.agent.did(),
consumer: space.did(),
});
const cid = await alice.capability.store.add(car);
assert.deepEqual(cid, car.cid);
const result = await alice.capability.store.get(car.cid);
assert.equal(result.link.toString(), car.cid.toString());
assert.equal(result.size, car.size);
},
});
Test.test({ StoreClient });
//# sourceMappingURL=store.test.js.map