@web3-storage/w3up-client
Version:
Client for the web3.storage w3up api
52 lines • 1.96 kB
JavaScript
import * as Signer from '@ucanto/principal/ed25519';
import * as StoreCapabilities from '@web3-storage/capabilities/store';
import * as Test from './test.js';
import { Space } from '../src/space.js';
import * as Account from '../src/account.js';
import * as Result from '../src/result.js';
import { randomCAR } from './helpers/random.js';
/**
* @type {Test.Suite}
*/
export const testSpace = Test.withContext({
'should get meta': async (assert, { client }) => {
const signer = await Signer.generate();
const name = `space-${Date.now()}`;
const space = new Space({
id: signer.did(),
meta: { name },
agent: client.agent,
});
assert.equal(space.did(), signer.did());
assert.equal(space.name, name);
assert.equal(space.meta()?.name, name);
},
'should get usage': async (assert, { client, grantAccess, mail }) => {
const space = await client.createSpace('test', {
skipGatewayAuthorization: true,
});
const email = 'alice@web.mail';
const login = Account.login(client, email);
const message = await mail.take();
assert.deepEqual(message.to, email);
await grantAccess(message);
const account = Result.try(await login);
Result.try(await account.provision(space.did()));
await space.save();
const size = 1138;
const archive = await randomCAR(size);
await client.agent.invokeAndExecute(StoreCapabilities.add, {
nb: {
link: archive.cid,
size,
},
});
const found = client.spaces().find((s) => s.did() === space.did());
if (!found)
return assert.fail('space not found');
const usage = Result.unwrap(await found.usage.get());
assert.equal(usage, BigInt(size));
},
});
Test.test({ Space: testSpace });
//# sourceMappingURL=space.test.js.map