mirror of
https://gitlab.com/soapbox-pub/ditto.git
synced 2025-12-06 11:29:46 +00:00
test: GET /wallet must be successful
This commit is contained in:
parent
5e86844c12
commit
03946fabc8
1 changed files with 115 additions and 0 deletions
|
|
@ -168,3 +168,118 @@ Deno.test('PUT /wallet must NOT be successful: wallet already exists', {
|
||||||
assertEquals(response.status, 400);
|
assertEquals(response.status, 400);
|
||||||
assertEquals(body2, { error: 'You already have a wallet 😏' });
|
assertEquals(body2, { error: 'You already have a wallet 😏' });
|
||||||
});
|
});
|
||||||
|
|
||||||
|
Deno.test('GET /wallet must be successful', {
|
||||||
|
sanitizeOps: false, // postgres.js calls 'setTimeout' without calling 'clearTimeout'
|
||||||
|
sanitizeResources: false, // postgres.js calls 'setTimeout' without calling 'clearTimeout'
|
||||||
|
}, async () => {
|
||||||
|
await using db = await createTestDB();
|
||||||
|
const store = db.store;
|
||||||
|
|
||||||
|
const sk = generateSecretKey();
|
||||||
|
const signer = new NSecSigner(sk);
|
||||||
|
const pubkey = await signer.getPublicKey();
|
||||||
|
const privkey = bytesToString('hex', sk);
|
||||||
|
const p2pk = getPublicKey(stringToBytes('hex', privkey));
|
||||||
|
|
||||||
|
const app = new Hono<AppEnv>().use(
|
||||||
|
async (c, next) => {
|
||||||
|
c.set('signer', signer);
|
||||||
|
await next();
|
||||||
|
},
|
||||||
|
async (c, next) => {
|
||||||
|
c.set('store', store);
|
||||||
|
await next();
|
||||||
|
},
|
||||||
|
).route('/', cashuApp);
|
||||||
|
|
||||||
|
// Wallet
|
||||||
|
await db.store.event(genEvent({
|
||||||
|
kind: 17375,
|
||||||
|
content: await signer.nip44.encrypt(
|
||||||
|
pubkey,
|
||||||
|
JSON.stringify([
|
||||||
|
['privkey', privkey],
|
||||||
|
['mint', 'https://mint.soul.com'],
|
||||||
|
]),
|
||||||
|
),
|
||||||
|
}, sk));
|
||||||
|
|
||||||
|
// Nutzap information
|
||||||
|
await db.store.event(genEvent({
|
||||||
|
kind: 10019,
|
||||||
|
tags: [
|
||||||
|
['pubkey', p2pk],
|
||||||
|
['mint', 'https://mint.soul.com'],
|
||||||
|
],
|
||||||
|
}, sk));
|
||||||
|
|
||||||
|
// Unspent proofs
|
||||||
|
await db.store.event(genEvent({
|
||||||
|
kind: 7375,
|
||||||
|
content: await signer.nip44.encrypt(
|
||||||
|
pubkey,
|
||||||
|
JSON.stringify({
|
||||||
|
mint: 'https://mint.soul.com',
|
||||||
|
proofs: [
|
||||||
|
{
|
||||||
|
id: '005c2502034d4f12',
|
||||||
|
amount: 25,
|
||||||
|
secret: 'z+zyxAVLRqN9lEjxuNPSyRJzEstbl69Jc1vtimvtkPg=',
|
||||||
|
C: '0241d98a8197ef238a192d47edf191a9de78b657308937b4f7dd0aa53beae72c46',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: '005c2502034d4f12',
|
||||||
|
amount: 25,
|
||||||
|
secret: 'z+zyxAVLRqN9lEjxuNPSyRJzEstbl69Jc1vtimvtkPg=',
|
||||||
|
C: '0241d98a8197ef238a192d47edf191a9de78b657308937b4f7dd0aa53beae72c46',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: '005c2502034d4f12',
|
||||||
|
amount: 25,
|
||||||
|
secret: 'z+zyxAVLRqN9lEjxuNPSyRJzEstbl69Jc1vtimvtkPg=',
|
||||||
|
C: '0241d98a8197ef238a192d47edf191a9de78b657308937b4f7dd0aa53beae72c46',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: '005c2502034d4f12',
|
||||||
|
amount: 25,
|
||||||
|
secret: 'z+zyxAVLRqN9lEjxuNPSyRJzEstbl69Jc1vtimvtkPg=',
|
||||||
|
C: '0241d98a8197ef238a192d47edf191a9de78b657308937b4f7dd0aa53beae72c46',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
del: [],
|
||||||
|
}),
|
||||||
|
),
|
||||||
|
}, sk));
|
||||||
|
|
||||||
|
// TODO: find a way to have a Mock mint so operations like 'swap', 'mint' and 'melt' can be tested (this will be a bit hard).
|
||||||
|
// Nutzap
|
||||||
|
const senderSk = generateSecretKey();
|
||||||
|
|
||||||
|
await db.store.event(genEvent({
|
||||||
|
kind: 9321,
|
||||||
|
content: 'Nice post!',
|
||||||
|
tags: [
|
||||||
|
['p', pubkey],
|
||||||
|
['u', 'https://mint.soul.com'],
|
||||||
|
[
|
||||||
|
'proof',
|
||||||
|
'{"amount":1,"C":"02277c66191736eb72fce9d975d08e3191f8f96afb73ab1eec37e4465683066d3f","id":"000a93d6f8a1d2c4","secret":"[\\"P2PK\\",{\\"nonce\\":\\"b00bdd0467b0090a25bdf2d2f0d45ac4e355c482c1418350f273a04fedaaee83\\",\\"data\\":\\"02eaee8939e3565e48cc62967e2fde9d8e2a4b3ec0081f29eceff5c64ef10ac1ed\\"}]"}',
|
||||||
|
],
|
||||||
|
],
|
||||||
|
}, senderSk));
|
||||||
|
|
||||||
|
const response = await app.request('/wallet', {
|
||||||
|
method: 'GET',
|
||||||
|
});
|
||||||
|
|
||||||
|
const body = await response.json();
|
||||||
|
|
||||||
|
assertEquals(response.status, 200);
|
||||||
|
assertEquals(body, {
|
||||||
|
pubkey_p2pk: p2pk,
|
||||||
|
mints: ['https://mint.soul.com'],
|
||||||
|
relays: ['ws://localhost:4036/relay'],
|
||||||
|
balance: 100,
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue