Kaynağa Gözat

test(multiplexer): match test() convention, drop flaky timing assertion

Michael Henke 1 ay önce
ebeveyn
işleme
1f257375ad
1 değiştirilmiş dosya ile 8 ekleme ve 20 silme
  1. 8 20
      src/multiplexer/shared.test.ts

+ 8 - 20
src/multiplexer/shared.test.ts

@@ -1,4 +1,4 @@
-import { afterEach, describe, expect, it, mock } from 'bun:test';
+import { afterEach, describe, expect, mock, test } from 'bun:test';
 
 type SpawnResult = {
   exited: Promise<number>;
@@ -18,7 +18,6 @@ mock.module('../utils/compat', () => ({
   crossSpawn: crossSpawnMock,
 }));
 
-const DELAY_MS = 250;
 let importCounter = 0;
 
 async function importShared() {
@@ -30,21 +29,10 @@ describe('gracefulClosePane', () => {
     crossSpawnMock.mockReset();
   });
 
-  it('sends Ctrl+C, waits 250ms, then closes, returning true on exit 0', async () => {
+  test('sends Ctrl+C, waits 250ms, then closes, returning true on exit 0', async () => {
     const calls: string[][] = [];
-    let ctrlCTime = 0;
-    let closeTime = 0;
 
     crossSpawnMock.mockImplementation((args: string[]) => {
-      if (
-        args.includes('C-c') ||
-        args.includes('\u0003') ||
-        args.includes('ctrl+c')
-      ) {
-        ctrlCTime = Date.now();
-      } else {
-        closeTime = Date.now();
-      }
       calls.push(args);
       return {
         exited: Promise.resolve(0),
@@ -53,7 +41,8 @@ describe('gracefulClosePane', () => {
       };
     });
 
-    const { gracefulClosePane } = await importShared();
+    const { gracefulClosePane, GRACEFUL_SHUTDOWN_DELAY_MS } =
+      await importShared();
     const ok = await gracefulClosePane('tmux', '%1', {
       ctrlC: ['send-keys', '-t', '%1', 'C-c'],
       close: ['kill-pane', '-t', '%1'],
@@ -61,10 +50,9 @@ describe('gracefulClosePane', () => {
 
     expect(ok).toBe(true);
     expect(calls).toHaveLength(2);
-    expect(closeTime - ctrlCTime).toBeGreaterThanOrEqual(DELAY_MS - 20);
   });
 
-  it('returns true when acceptExitCode1 and exit code is 1', async () => {
+  test('returns true when acceptExitCode1 and exit code is 1', async () => {
     crossSpawnMock.mockImplementation(() => ({
       exited: Promise.resolve(1),
       stdout: () => Promise.resolve(''),
@@ -80,7 +68,7 @@ describe('gracefulClosePane', () => {
     expect(ok).toBe(true);
   });
 
-  it('returns false on exit 1 when acceptExitCode1 is false', async () => {
+  test('returns false on exit 1 when acceptExitCode1 is false', async () => {
     crossSpawnMock.mockImplementation(() => ({
       exited: Promise.resolve(1),
       stdout: () => Promise.resolve(''),
@@ -95,7 +83,7 @@ describe('gracefulClosePane', () => {
     expect(ok).toBe(false);
   });
 
-  it('returns emptyPaneReturnsTrue when paneId is empty', async () => {
+  test('returns emptyPaneReturnsTrue when paneId is empty', async () => {
     const { gracefulClosePane } = await importShared();
     const ok = await gracefulClosePane('zellij', '', {
       ctrlC: ['action', 'write', '--pane-id', '', '\u0003'],
@@ -106,7 +94,7 @@ describe('gracefulClosePane', () => {
     expect(crossSpawnMock.mock.calls).toHaveLength(0);
   });
 
-  it('returns false when binary is null', async () => {
+  test('returns false when binary is null', async () => {
     const { gracefulClosePane } = await importShared();
     const ok = await gracefulClosePane(null, '%1', {
       ctrlC: ['x'],