🐛 fix(vscode): worktree 复用测试在 macOS 上按真实路径比较,顺手清掉旧的代码风格错误
Claude-Session: https://claude.ai/code/session_01KDcq9HcrVLs2c9tkRxasub
This commit is contained in:
1 parent
ae875756a9
commit
f4b1d80105
5 files changed
+12
-10
No files matched your search
+1
-1
@@ -2,7 +2,7 @@
|
|||||||
"publisher": "clurdra",
|
"publisher": "clurdra",
|
||||||
"name": "superpowers-vscode-clurdra",
|
"name": "superpowers-vscode-clurdra",
|
||||||
"displayName": "Superpowers-clurdra",
|
"displayName": "Superpowers-clurdra",
|
||||||
"version": "0.2.117",
|
"version": "0.2.118",
|
||||||
"packageManager": "pnpm@10.27.0",
|
"packageManager": "pnpm@10.27.0",
|
||||||
"description": "Superpowers specs and plans Kanban explorer",
|
"description": "Superpowers specs and plans Kanban explorer",
|
||||||
"author": "clurdra",
|
"author": "clurdra",
|
||||||
|
|||||||
@@ -268,7 +268,7 @@ export async function listUnreleasedCommits(o: { cwd: string, devBranch: string,
|
|||||||
)
|
)
|
||||||
if (!out)
|
if (!out)
|
||||||
return []
|
return []
|
||||||
const commits = out.split('\x1e').flatMap((chunk) => {
|
const commits = out.split('\x1E').flatMap((chunk) => {
|
||||||
const trimmed = chunk.replace(/^\n+/, '').trimEnd()
|
const trimmed = chunk.replace(/^\n+/, '').trimEnd()
|
||||||
if (!trimmed)
|
if (!trimmed)
|
||||||
return []
|
return []
|
||||||
|
|||||||
@@ -7,14 +7,14 @@ import {
|
|||||||
cherryPickToRelease,
|
cherryPickToRelease,
|
||||||
cutRelease,
|
cutRelease,
|
||||||
getReleaseStatus,
|
getReleaseStatus,
|
||||||
|
groupCommitsByPr,
|
||||||
|
indexUnreleasedByMergePr,
|
||||||
listReleaseBranches,
|
listReleaseBranches,
|
||||||
listUnreleasedCommits,
|
listUnreleasedCommits,
|
||||||
normalizeReleasePrefix,
|
normalizeReleasePrefix,
|
||||||
|
parseGiteaMergeSubject,
|
||||||
pickCurrentRelease,
|
pickCurrentRelease,
|
||||||
todayReleaseBranch,
|
todayReleaseBranch,
|
||||||
groupCommitsByPr,
|
|
||||||
parseGiteaMergeSubject,
|
|
||||||
indexUnreleasedByMergePr,
|
|
||||||
} from '../../src/git/release'
|
} from '../../src/git/release'
|
||||||
|
|
||||||
const gitEnv = { ...process.env, GIT_CONFIG_NOSYSTEM: '1', GIT_CONFIG_GLOBAL: '/dev/null', GIT_TERMINAL_PROMPT: '0', GIT_AUTHOR_NAME: 't', GIT_AUTHOR_EMAIL: 't@t', GIT_COMMITTER_NAME: 't', GIT_COMMITTER_EMAIL: 't@t' }
|
const gitEnv = { ...process.env, GIT_CONFIG_NOSYSTEM: '1', GIT_CONFIG_GLOBAL: '/dev/null', GIT_TERMINAL_PROMPT: '0', GIT_AUTHOR_NAME: 't', GIT_AUTHOR_EMAIL: 't@t', GIT_COMMITTER_NAME: 't', GIT_COMMITTER_EMAIL: 't@t' }
|
||||||
@@ -60,7 +60,7 @@ describe('纯函数', () => {
|
|||||||
expect(pickCurrentRelease('release/', ['main'])).toBeUndefined()
|
expect(pickCurrentRelease('release/', ['main'])).toBeUndefined()
|
||||||
})
|
})
|
||||||
it('parseGiteaMergeSubject 认 Gitea 合并说明', () => {
|
it('parseGiteaMergeSubject 认 Gitea 合并说明', () => {
|
||||||
expect(parseGiteaMergeSubject("Merge pull request '连续包月会员订阅体系' (#260) from feature/monthly-membership into main")).toEqual({
|
expect(parseGiteaMergeSubject('Merge pull request \'连续包月会员订阅体系\' (#260) from feature/monthly-membership into main')).toEqual({
|
||||||
number: 260,
|
number: 260,
|
||||||
title: '连续包月会员订阅体系',
|
title: '连续包月会员订阅体系',
|
||||||
})
|
})
|
||||||
@@ -135,7 +135,7 @@ describe('集成', () => {
|
|||||||
const a = commit(fx.peer, 'b.txt', 'b', 'fix(admin): 会员档位隐藏')
|
const a = commit(fx.peer, 'b.txt', 'b', 'fix(admin): 会员档位隐藏')
|
||||||
const b = commit(fx.peer, 'c.txt', 'c', 'fix(membership): 年付月度发卡')
|
const b = commit(fx.peer, 'c.txt', 'c', 'fix(membership): 年付月度发卡')
|
||||||
git(fx.peer, ['checkout', 'main'])
|
git(fx.peer, ['checkout', 'main'])
|
||||||
git(fx.peer, ['merge', '--no-ff', '-m', "Merge pull request '连续包月会员订阅体系' (#260) from feature into main", 'feature'])
|
git(fx.peer, ['merge', '--no-ff', '-m', 'Merge pull request \'连续包月会员订阅体系\' (#260) from feature into main', 'feature'])
|
||||||
git(fx.peer, ['push', 'origin', 'main'])
|
git(fx.peer, ['push', 'origin', 'main'])
|
||||||
git(fx.repo, ['fetch', 'origin'])
|
git(fx.repo, ['fetch', 'origin'])
|
||||||
const map = await indexUnreleasedByMergePr({
|
const map = await indexUnreleasedByMergePr({
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import { execFileSync } from 'node:child_process'
|
import { execFileSync } from 'node:child_process'
|
||||||
import { existsSync, promises as fsp, rmSync, writeFileSync } from 'node:fs'
|
import { existsSync, promises as fsp, realpathSync, rmSync, writeFileSync } from 'node:fs'
|
||||||
import * as os from 'node:os'
|
import * as os from 'node:os'
|
||||||
import * as path from 'node:path'
|
import * as path from 'node:path'
|
||||||
import { afterEach, describe, expect, it } from 'vitest'
|
import { afterEach, describe, expect, it } from 'vitest'
|
||||||
@@ -24,7 +24,9 @@ interface Fixture { root: string, origin: string, repo: string, templatePath: st
|
|||||||
|
|
||||||
/** origin(bare)← 同事的 clone push feature 分支;repo 是接管方的 clone,只有 main。 */
|
/** origin(bare)← 同事的 clone push feature 分支;repo 是接管方的 clone,只有 main。 */
|
||||||
async function setup(): Promise<Fixture> {
|
async function setup(): Promise<Fixture> {
|
||||||
const root = await fsp.mkdtemp(path.join(os.tmpdir(), 'sw-remote-'))
|
// macOS 的 tmpdir 是 /var → /private/var 的软链,git worktree list 报的是真实路径;
|
||||||
|
// 夹具根目录先取真实路径,复用分支返回的路径才能和模板路径按字符串相等。
|
||||||
|
const root = realpathSync(await fsp.mkdtemp(path.join(os.tmpdir(), 'sw-remote-')))
|
||||||
const origin = path.join(root, 'origin.git')
|
const origin = path.join(root, 'origin.git')
|
||||||
git(root, ['init', '--bare', '-b', 'main', origin])
|
git(root, ['init', '--bare', '-b', 'main', origin])
|
||||||
const peer = path.join(root, 'peer')
|
const peer = path.join(root, 'peer')
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import { describe, expect, it } from 'vitest'
|
|
||||||
import type { ReleaseCommitGroup } from './messages'
|
import type { ReleaseCommitGroup } from './messages'
|
||||||
|
import { describe, expect, it } from 'vitest'
|
||||||
import { filterCherryPickGroups, uniqueAuthors } from './cherryPickView'
|
import { filterCherryPickGroups, uniqueAuthors } from './cherryPickView'
|
||||||
|
|
||||||
const groups: ReleaseCommitGroup[] = [
|
const groups: ReleaseCommitGroup[] = [
|
||||||
|
|||||||
Reference in new issue
Block a user