'use strict'; const { test, beforeEach, afterEach } = require('node:test'); const assert = require('node:assert/strict'); const fs = require('node:fs'); const os = require('node:os'); const path = require('node:path'); const { writeOutput } = require('../output'); let workspace; beforeEach(() => { workspace = fs.mkdtempSync(path.join(os.tmpdir(), 'calc-version-')); }); afterEach(() => { fs.rmSync(workspace, { recursive: true, force: true }); }); test('writeOutput 將 name=value 附加寫入輸出檔', () => { const file = path.join(workspace, 'output'); writeOutput('version', '1.2.3', file); assert.equal(fs.readFileSync(file, 'utf8'), 'version=1.2.3\n'); }); test('writeOutput 以附加方式保留既有內容', () => { const file = path.join(workspace, 'output'); fs.writeFileSync(file, 'existing=1\n'); writeOutput('version', '1.2.3', file); assert.equal(fs.readFileSync(file, 'utf8'), 'existing=1\nversion=1.2.3\n'); }); test('writeOutput 在未提供輸出檔時丟出錯誤', () => { assert.throws(() => writeOutput('version', '1.2.3', undefined), /GITHUB_OUTPUT 未設定/); });