Files
ECC/tests/lib/setup-readline-cancellation.test.js
28e53a0bc1 feat(install): add guided multi-harness installer (#2649)
* feat(install): add guided Claude plugin setup

* fix: support Claude command shims on Windows

* feat: support safe Claude plugin scope migration

* fix(install): preserve interactive setup terminal

* fix(install): auto-migrate setup scope changes

* feat(install): add guided multi-harness installer

* fix(install): sync Yarn binary metadata

* fix(install): handle wizard EOF on Node 18

* ci: allow installer matrix tests to finish

* test(install): allow slower PowerShell delegation

* fix(install): harden guided provider reconciliation

* test(install): harden packaged and local compatibility

* chore: prepare guided installer release 2.2.0

* fix(install): report refreshed Codex marketplace state

* fix(install): verify managed content provenance

* test(install): allow empty Yarn smoke fixture

* test(install): invoke Windows package shims safely

* fix(install): close cross-platform release gaps

* fix(install): require trusted GitHub origins

* fix(install): preserve hook profile precedence

* refactor(install): centralize trusted GitHub origins

* ci: retrigger workflow run after merge of main

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-08-06 15:39:49 -04:00

27 lines
785 B
JavaScript

'use strict';
const assert = require('assert');
const { EventEmitter } = require('events');
const { questionWithCancellation } = require('../../scripts/setup');
async function run() {
const terminal = new EventEmitter();
terminal.question = () => new Promise(() => {});
const pendingAnswer = questionWithCancellation(terminal, 'Choose: ');
terminal.emit('close');
await assert.rejects(
pendingAnswer,
error => error.code === 'ABORT_ERR' && /readline was closed/i.test(error.message)
);
console.log(' ✓ readline close rejects an otherwise unresolved question');
console.log('\nResults: Passed: 1, Failed: 0');
}
run().catch(error => {
console.log(` ✗ ${error.message}`);
console.log('\nResults: Passed: 0, Failed: 1');
process.exitCode = 1;
});