43 lines
1.2 KiB
TypeScript
43 lines
1.2 KiB
TypeScript
/**
|
|
* @license
|
|
* Copyright 2025 Google LLC
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
*/
|
|
|
|
import { describe, it, expect, beforeEach, afterEach } from 'vitest';
|
|
import { TestRig } from './test-helper.js';
|
|
import { join } from 'node:path';
|
|
|
|
describe('Flicker Detector', () => {
|
|
let rig: TestRig;
|
|
|
|
beforeEach(() => {
|
|
rig = new TestRig();
|
|
});
|
|
|
|
afterEach(async () => await rig.cleanup());
|
|
|
|
it('should not detect a flicker under the max height budget', async () => {
|
|
rig.setup('flicker-detector-test', {
|
|
fakeResponsesPath: join(
|
|
import.meta.dirname,
|
|
'flicker-detector.max-height.responses',
|
|
),
|
|
});
|
|
const run = await rig.runInteractive();
|
|
const prompt = 'Tell me a fun fact.';
|
|
await run.type(prompt);
|
|
await run.type('\r');
|
|
|
|
const hasUserPromptEvent = await rig.waitForTelemetryEvent('user_prompt');
|
|
expect(hasUserPromptEvent).toBe(true);
|
|
|
|
const hasSessionCountMetric = await rig.waitForMetric('session.count');
|
|
expect(hasSessionCountMetric).toBe(true);
|
|
|
|
// We expect NO flicker event to be found.
|
|
const flickerMetric = rig.readMetric('ui.flicker.count');
|
|
expect(flickerMetric).toBeNull();
|
|
});
|
|
});
|