estate harness: the failure driver closes its browser on timeout; the run waits for each fake server to exit; prettier

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
Meta Vens 2026-10-31 21:29:03 +01:00
commit cdfd43fe9f
4 changed files with 7 additions and 8 deletions

View file

@ -5,8 +5,8 @@ const MODE = process.env.MODE;
const T0 = Date.now(); const t = () => `+${Date.now() - T0}ms`;
const log = (...a) => console.log(`[${MODE}]`, ...a);
const HEADERS = ['GameCult', 'Projects', 'nibu', 'eureka', 'Nibu', 'Eureka', 'Elsewhere', 'Direct Messages'];
setTimeout(() => { console.log('DRIVER_TIMEOUT'); process.exit(3); }, 150000);
let b;
setTimeout(() => { console.log('DRIVER_TIMEOUT'); Promise.resolve(b && b.close()).catch(() => undefined).finally(() => process.exit(3)); }, 240000);
(async () => {
b = await chromium.launch();
const ctx = await b.newContext({ viewport: { width: 390, height: 844 }, isMobile: true, hasTouch: true, deviceScaleFactor: 1 });

View file

@ -14,14 +14,14 @@ for m in twodm reload convert; do
HSLOG=/tmp/hslog-$m.txt NOROOT=0 node /src/harness/estate/fakehs.cjs /src/dist > /tmp/hs-$m.out 2>&1 &
HS=$!; sleep 2
MODE=$m node /tmp/pw/drive.cjs; echo "DRIVE $m RC=$?"
kill $HS; sleep 1
kill $HS; wait $HS 2>/dev/null; sleep 1
echo "=== hs $m"; grep -E "MDIRECT_PUT|DELIVER|STATE_" /tmp/hs-$m.out; grep -E " JOIN " /tmp/hslog-$m.txt
done
failure() { m=$1; shift
env "$@" HSLOG=/tmp/hslog-$m.txt NOROOT=0 node /src/harness/estate/fakehs.cjs /src/dist > /tmp/hs-$m.out 2>&1 &
HS=$!; sleep 2
MODE=$m node /tmp/pw/drive-failures.cjs; echo "DRIVE $m RC=$?"
kill $HS; sleep 1
kill $HS; wait $HS 2>/dev/null; sleep 1
echo "=== hs $m"; grep -E "MDIRECT|DELIVER|JOIN_|STATE_" /tmp/hs-$m.out; grep -E " JOIN " /tmp/hslog-$m.txt; }
failure pjfail FAIL_MDIRECT=1
failure pjreload DELAY_MDIRECT=1

View file

@ -51,7 +51,9 @@ describe('activateEstateRoom', () => {
);
it('falls back to the error message, then to a generic one', async () => {
const named = recordingClient(vi.fn().mockRejectedValue(Object.assign(new Error('Boom'), { httpStatus: 500 })));
const named = recordingClient(
vi.fn().mockRejectedValue(Object.assign(new Error('Boom'), { httpStatus: 500 }))
);
expect(await activateEstateRoom(named.mx, room('joinable'))).toEqual({
kind: 'refused',
message: 'Boom',

View file

@ -45,10 +45,7 @@ import {
} from '../../../utils/room';
import { nameInitials } from '../../../utils/common';
import { RoomAvatar } from '../../../components/room-avatar';
import {
getMxIdLocalPart,
rateLimitedActions,
} from '../../../utils/matrix';
import { getMxIdLocalPart, rateLimitedActions } from '../../../utils/matrix';
import { activateEstateRoom } from '../../../features/estate/joinEstateRoom';
import { Time } from '../../../components/message';
import { useElementSizeObserver } from '../../../hooks/useElementSizeObserver';