fix(更新日志): 面板随指定版本下拉联动;本机已是最新时展示本机条目
- 「指定版本更新」下拉选中版本时日志切到该版本自身的条目(升级/回退统一语义), 未收录显示"暂无更新说明"(区块不消失),选回空项回默认区间; 列表加载后自动默认选中第一条不触发切换 - 本机版本==线上最新时回退显示本机版本条目(原来整块消失),灰度/回滚仍隐藏 - 精简 4.0.20/4.0.21 超长文案,修复既有红测试(更新说明限 40 字)
This commit is contained in:
@@ -5,6 +5,7 @@ import {
|
||||
CLIENT_CHANGELOG,
|
||||
newestChangelogVersion,
|
||||
selectChangelogEntries,
|
||||
selectVersionEntry,
|
||||
type ClientChangelogEntry,
|
||||
} from '../src/shared/client-changelog.ts'
|
||||
|
||||
@@ -62,13 +63,57 @@ test('更新日志:落后多个版本时逐版本列出(含中间版本)',
|
||||
assert.deepEqual(entries.map((entry) => entry.version), ['4.1.0', '4.0.11', '4.0.9'])
|
||||
})
|
||||
|
||||
test('更新日志:已是最新版本时没有条目(面板隐藏该区块)', () => {
|
||||
test('更新日志:已是最新版本且不带 includeCurrent 时没有条目(确认框语义)', () => {
|
||||
assert.deepEqual(
|
||||
selectChangelogEntries({ entries: FIXTURE, currentVersion: '4.0.11', latestVersion: '4.0.11' }),
|
||||
[],
|
||||
)
|
||||
})
|
||||
|
||||
test('更新日志:面板展示(includeCurrent)在本机已是最新时给出本机版本条目', () => {
|
||||
const entries = selectChangelogEntries({
|
||||
entries: FIXTURE,
|
||||
currentVersion: '4.0.11',
|
||||
latestVersion: '4.0.11',
|
||||
includeCurrent: true,
|
||||
})
|
||||
assert.deepEqual(entries.map((entry) => entry.version), ['4.0.11'])
|
||||
})
|
||||
|
||||
test('更新日志:面板展示在有更新时行为不变(只给本机之后的条目)', () => {
|
||||
const entries = selectChangelogEntries({
|
||||
entries: FIXTURE,
|
||||
currentVersion: '4.0.11',
|
||||
latestVersion: '4.1.0',
|
||||
includeCurrent: true,
|
||||
})
|
||||
assert.deepEqual(entries.map((entry) => entry.version), ['4.1.0'])
|
||||
})
|
||||
|
||||
test('更新日志:面板展示在本机高于线上(灰度/回滚)时仍不列条目', () => {
|
||||
assert.deepEqual(
|
||||
selectChangelogEntries({
|
||||
entries: FIXTURE,
|
||||
currentVersion: '4.1.0',
|
||||
latestVersion: '4.0.11',
|
||||
includeCurrent: true,
|
||||
}),
|
||||
[],
|
||||
)
|
||||
})
|
||||
|
||||
test('更新日志:面板展示在本机版本未被收录时不倒推旧条目', () => {
|
||||
assert.deepEqual(
|
||||
selectChangelogEntries({
|
||||
entries: FIXTURE,
|
||||
currentVersion: '4.0.10',
|
||||
latestVersion: '4.0.10',
|
||||
includeCurrent: true,
|
||||
}),
|
||||
[],
|
||||
)
|
||||
})
|
||||
|
||||
test('更新日志:本机版本高于线上(灰度/回滚)不列条目', () => {
|
||||
assert.deepEqual(
|
||||
selectChangelogEntries({ entries: FIXTURE, currentVersion: '4.1.0', latestVersion: '4.0.11' }),
|
||||
@@ -104,3 +149,23 @@ test('更新日志:版本号前缀 v 不影响筛选', () => {
|
||||
const entries = selectChangelogEntries({ entries: FIXTURE, currentVersion: 'v4.0.4', latestVersion: 'v4.0.11' })
|
||||
assert.deepEqual(entries.map((entry) => entry.version), ['4.0.11', '4.0.9'])
|
||||
})
|
||||
|
||||
test('指定版本日志:取选中版本自身的条目(升级/回退/同版统一语义)', () => {
|
||||
assert.deepEqual(
|
||||
selectVersionEntry('4.0.9', FIXTURE).map((entry) => entry.version),
|
||||
['4.0.9'],
|
||||
'回退到旧版本时也要能看到该版本的更新说明',
|
||||
)
|
||||
assert.deepEqual(selectVersionEntry('4.1.0', FIXTURE).map((entry) => entry.version), ['4.1.0'])
|
||||
})
|
||||
|
||||
test('指定版本日志:v 前缀与版本号为空', () => {
|
||||
assert.deepEqual(selectVersionEntry('v4.0.11', FIXTURE).map((entry) => entry.version), ['4.0.11'])
|
||||
assert.deepEqual(selectVersionEntry('', FIXTURE), [])
|
||||
assert.deepEqual(selectVersionEntry('v', FIXTURE), [])
|
||||
})
|
||||
|
||||
test('指定版本日志:未收录的版本不倒推相邻条目', () => {
|
||||
assert.deepEqual(selectVersionEntry('4.0.10', FIXTURE), [], '4.0.10 未收录,不能拿 4.0.9 的说明顶替')
|
||||
assert.deepEqual(selectVersionEntry('4.2.0', FIXTURE), [])
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user