test(script-contract): 讓 --key=value 的值可以本身以 -- 開頭
commit 訊息與 PR 描述裡出現 --flag 是常態,而原本的檢查對兩種寫法一視同仁:值只要以 -- 開頭就報「需要一個值」。空格分隔的寫法確實分不出「值」與「打錯的 flag」,但等號寫法 沒有這個歧義,不該一起擋掉。 這是實際撞到的:拿 commit-split 提交它自己時,--body 的內容第一行就是「--repo 與 --issue-repo 的差別」,整個 commit 因此做不出來。空格寫法的錯誤訊息現在會指路到等號寫法。
This commit is contained in:
@@ -55,6 +55,28 @@ test('--repo 格式不是 owner/name 時失敗', async (t) => {
|
||||
assert.equal(json.error.code, 'BAD_REPO');
|
||||
});
|
||||
|
||||
test('--key=value 的值可以本身就以 -- 開頭', async (t) => {
|
||||
// commit 訊息與 PR 描述裡出現 --flag 是常態;空格分隔的寫法分不出來,等號寫法可以
|
||||
const stub = await withStub(t);
|
||||
|
||||
const { json } = await runScript('labels-list.js', ['--repo=--看起來像 flag 的值'], {
|
||||
env: envFor(stub),
|
||||
});
|
||||
|
||||
assert.equal(json.error.code, 'BAD_REPO', '要走到 repo 格式檢查,而不是被當成缺值');
|
||||
});
|
||||
|
||||
test('--key value 的值以 -- 開頭時仍然擋下,並指出等號寫法', async (t) => {
|
||||
const stub = await withStub(t);
|
||||
|
||||
const { json } = await runScript('labels-list.js', ['--repo', '--看起來像 flag 的值'], {
|
||||
env: envFor(stub),
|
||||
});
|
||||
|
||||
assert.equal(json.error.code, 'MISSING_FLAG');
|
||||
assert.match(json.error.message, /--repo=/);
|
||||
});
|
||||
|
||||
test('--key=value 與 --key value 兩種寫法等價', async (t) => {
|
||||
const stub = await withStub(t);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user