fix(terminal): refit after fonts load
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
import { scheduleTerminalFits } from '@/components/agent-workspace/terminal-fit';
|
||||
import { describe, expect, test, vi } from 'vitest';
|
||||
|
||||
const flush = async () => {
|
||||
await Promise.resolve();
|
||||
await Promise.resolve();
|
||||
};
|
||||
|
||||
describe('scheduleTerminalFits', () => {
|
||||
test('fits in rAF and again after fonts.ready and nerd-font load', async () => {
|
||||
const fit = vi.fn();
|
||||
const sendResize = vi.fn();
|
||||
let rafCb: (() => void) | undefined;
|
||||
|
||||
scheduleTerminalFits({
|
||||
fit,
|
||||
sendResize,
|
||||
fontsReady: Promise.resolve(),
|
||||
loadNerdFont: () => Promise.resolve(),
|
||||
raf: (cb) => {
|
||||
rafCb = cb;
|
||||
},
|
||||
isAborted: () => false,
|
||||
});
|
||||
rafCb?.();
|
||||
await flush();
|
||||
|
||||
expect(fit).toHaveBeenCalledTimes(3);
|
||||
expect(sendResize).toHaveBeenCalledTimes(3);
|
||||
});
|
||||
|
||||
test('does nothing once aborted', async () => {
|
||||
const fit = vi.fn();
|
||||
|
||||
scheduleTerminalFits({
|
||||
fit,
|
||||
sendResize: vi.fn(),
|
||||
fontsReady: Promise.resolve(),
|
||||
loadNerdFont: () => Promise.resolve(),
|
||||
raf: (cb) => cb(),
|
||||
isAborted: () => true,
|
||||
});
|
||||
await flush();
|
||||
|
||||
expect(fit).not.toHaveBeenCalled();
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user