import {App} from "../../util/app"; describe('Run', () => { let app: App; beforeAll(async () => { app = new App({ httpPort: 5000, httpEnable: true, requestBindPort: 5001, publishBindPort: 5002, peerId: 'app-001', }); 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({ id: "peon-1", 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"]}); } }); });