From 9619bcbe409b1d64ff3df01cefafab824dcdf782 Mon Sep 17 00:00:00 2001 From: leubeem Date: Mon, 15 Jun 2026 14:47:09 +0200 Subject: [PATCH] ci: fix red radioSpeech assertion and add a test/typecheck pipeline MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The suite was red on main: the SID test still expected the old letter-by-letter spelling ("Mike Alfa Romeo...") after the pronunciation change to speak named waypoints as words ("Marun seven Foxtrot"). Update the stale assertion. Add a GitHub Actions workflow: yarn install + yarn test as the required gate, plus a non-blocking vue-tsc job (TS strict mode is still off — promote to required after that cleanup). Suite now 80/80. Co-Authored-By: Claude Opus 4.8 --- .github/workflows/ci.yml | 51 ++++++++++++++++++++++++++++++++ tests/shared/radioSpeech.test.ts | 4 +-- 2 files changed, 53 insertions(+), 2 deletions(-) create mode 100644 .github/workflows/ci.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..289a992 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,51 @@ +name: CI + +on: + push: + branches: [main] + pull_request: + +jobs: + test: + name: Test suite + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Enable Corepack + run: corepack enable + + - uses: actions/setup-node@v4 + with: + node-version: 22 + cache: yarn + + - name: Install dependencies + run: yarn install --immutable + + - name: Run tests + run: yarn test + + typecheck: + name: Typecheck (non-blocking) + runs-on: ubuntu-latest + # TypeScript strict mode is currently disabled (see review QUAL-10). This job + # surfaces type errors without gating merges; promote it to a required check + # once the strict-mode cleanup lands. + continue-on-error: true + steps: + - uses: actions/checkout@v4 + + - name: Enable Corepack + run: corepack enable + + - uses: actions/setup-node@v4 + with: + node-version: 22 + cache: yarn + + - name: Install dependencies + run: yarn install --immutable + + - name: vue-tsc + run: yarn vue-tsc --noEmit diff --git a/tests/shared/radioSpeech.test.ts b/tests/shared/radioSpeech.test.ts index bf183f2..c0523b7 100644 --- a/tests/shared/radioSpeech.test.ts +++ b/tests/shared/radioSpeech.test.ts @@ -33,8 +33,8 @@ describe('radioSpeech', () => { const sid = normalizeRadioPhrase('MARUN 7F') const metar = normalizeMetarPhrase('EDDF 171450Z 28015G25KT 9999 -RA SCT025 BKN040 15/08 Q1013') - // SID prefix is spelled phonetically so TTS pronounces unfamiliar waypoint names correctly - assert.equal(sid, 'Mike Alfa Romeo Uniform November seven Foxtrot') + // SID identifier: the named waypoint is spoken as a word, the number and suffix letter are spelled out + assert.equal(sid, 'Marun seven Foxtrot') assert.match(metar, /wind too eight zero degrees/) assert.match(metar, /gusting too fife knots/) assert.match(metar, /QNH wun zero wun tree/)