| | |
| | | |
| | | const mainState = stack.redisCommand('GET', 'dev:bts-simulator:state:v1') |
| | | expect(mainState).not.toMatch(/\\?"history\\?"\s*:/) |
| | | const historyBeforePowerOff = Number(stack.redisCommand( |
| | | 'LLEN', 'dev:bts-simulator:collector-history:v1:dev-sim-collector-1', |
| | | )) |
| | | expect(historyBeforePowerOff).toBeGreaterThan(0) |
| | | |
| | | page.once('dialog', dialog => dialog.accept()) |
| | | const poweredOff = page.waitForResponse(response => response.request().method() === 'POST' |
| | | && response.url().endsWith('/dev/bts-simulator/power') && response.ok()) |
| | | await page.getByRole('button', { name: '一键模拟关机' }).click() |
| | | await poweredOff |
| | | await expect(page.locator('#device-power')).toHaveText('已关机') |
| | | const historyAfterPowerOff = Number(stack.redisCommand( |
| | | 'LLEN', 'dev:bts-simulator:collector-history:v1:dev-sim-collector-1', |
| | | )) |
| | | await page.waitForTimeout(700) |
| | | expect(Number(stack.redisCommand( |
| | | 'LLEN', 'dev:bts-simulator:collector-history:v1:dev-sim-collector-1', |
| | | ))).toBeGreaterThan(0) |
| | | ))).toBe(historyAfterPowerOff) |
| | | |
| | | await stack.restartBackend() |
| | | await page.goto(`${stack.backendUrl}/dev/bts-simulator.html`) |
| | | await expect(page.locator('#device-power')).toHaveText('已关机') |
| | | await page.waitForTimeout(700) |
| | | expect(Number(stack.redisCommand( |
| | | 'LLEN', 'dev:bts-simulator:collector-history:v1:dev-sim-collector-1', |
| | | ))).toBe(historyAfterPowerOff) |
| | | |
| | | const poweredOn = page.waitForResponse(response => response.request().method() === 'POST' |
| | | && response.url().endsWith('/dev/bts-simulator/power') && response.ok()) |
| | | await page.getByRole('button', { name: '一键模拟开机' }).click() |
| | | await poweredOn |
| | | await expect(page.locator('#device-power')).toHaveText('已开机') |
| | | await expect.poll(() => Number(stack.redisCommand( |
| | | 'LLEN', 'dev:bts-simulator:collector-history:v1:dev-sim-collector-1', |
| | | ))).toBeGreaterThan(historyAfterPowerOff) |
| | | await expect.poll(() => { |
| | | const stored = JSON.parse(stack.redisCommand('GET', 'dev:device-discovery:candidates:v1')) |
| | | const candidates = typeof stored === 'string' ? JSON.parse(stored) : stored |
| | | return candidates.collectors.find((item: { deviceCode: string }) => |
| | | item.deviceCode === 'dev-sim-collector-1')?.online |
| | | }, { timeout: 10_000 }).toBe(true) |
| | | |
| | | await login(page) |
| | | await page.goto('/device-collector/new') |