rhizome/__tests__/run/001-single-node.ts

70 lines
1.5 KiB
TypeScript
Raw Normal View History

import {App} from "../../util/app";
2024-12-25 16:13:48 -06:00
describe('Run', () => {
let app: App;
beforeAll(async () => {
app = new App({
httpPort: 5000,
httpEnable: true,
requestBindPort: 5001,
publishBindPort: 5002,
2024-12-31 12:40:26 -06:00
peerId: 'app-001',
2024-12-25 16:13:48 -06:00
});
await app.start();
});
afterAll(async () => {
await app.stop();
});
it('can put a new user and fetch it', async () => {
// Create a new record
{
const res = await fetch(`${app.apiUrl}/user`, {
method: 'PUT',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
id: "peon-1",
properties: {
name: "Peon",
age: 263
}
})
});
const data = await res.json();
expect(data).toMatchObject({
2024-12-25 16:13:48 -06:00
id: "peon-1",
2024-12-25 19:27:36 -06:00
properties: {
name: "Peon",
age: 263
}
});
}
// TODO: Optimistic update and remove this delay
await new Promise((resolve) => setTimeout(resolve, 100));
// Read what we wrote
{
const res = await fetch(`${app.apiUrl}/user/peon-1`);
const data = await res.json();
expect(data).toMatchObject({
id: "peon-1",
properties: {
name: "Peon",
age: 263
}
});
}
// Verify our record is also in the index
{
const res = await fetch(`${app.apiUrl}/user/ids`);
const data = await res.json();
expect(data).toMatchObject({ids: [ "peon-1"]});
}
2024-12-25 16:13:48 -06:00
});
});