mirror of
https://github.com/willmiao/ComfyUI-Lora-Manager.git
synced 2026-03-21 21:22:11 -03:00
feat: update version badge logic for same-base update strategy, see #676
- Remove unused isNewer variable calculation - Use dividerThresholdVersionId instead of latestLibraryVersionId for badge logic - Add test case to verify newer version badge appears with same-base strategy - Ensures correct badge display when filtering by same base model versions
This commit is contained in:
@@ -567,9 +567,6 @@ function render(record) {
|
||||
|
||||
const rowsMarkup = filteredVersions
|
||||
.map(version => {
|
||||
const isNewer =
|
||||
typeof latestLibraryVersionId === 'number' &&
|
||||
version.versionId > latestLibraryVersionId;
|
||||
let markup = '';
|
||||
if (
|
||||
!dividerInserted &&
|
||||
@@ -580,7 +577,7 @@ function render(record) {
|
||||
markup += '<div class="version-divider" role="presentation"></div>';
|
||||
}
|
||||
markup += renderRow(version, {
|
||||
latestLibraryVersionId,
|
||||
latestLibraryVersionId: dividerThresholdVersionId,
|
||||
currentVersionId: normalizedCurrentVersionId,
|
||||
modelId: record?.modelId ?? modelId,
|
||||
});
|
||||
|
||||
@@ -283,4 +283,70 @@ describe('ModelVersionsTab media rendering', () => {
|
||||
const toggleTextAfter = document.querySelector('.versions-filter-toggle .sr-only');
|
||||
expect(toggleTextAfter?.textContent?.trim()).toContain('All versions');
|
||||
});
|
||||
|
||||
it('shows a newer version badge when viewing same-base results', async () => {
|
||||
stateMock.global.settings.update_flag_strategy = 'same_base';
|
||||
fetchModelUpdateVersions.mockResolvedValue({
|
||||
success: true,
|
||||
record: {
|
||||
shouldIgnore: false,
|
||||
inLibraryVersionIds: [3, 1],
|
||||
versions: [
|
||||
{
|
||||
versionId: 4,
|
||||
name: 'V4',
|
||||
baseModel: 'Base IL',
|
||||
previewUrl: '/api/lm/previews/v4.png',
|
||||
sizeBytes: 1024,
|
||||
isInLibrary: false,
|
||||
shouldIgnore: false,
|
||||
},
|
||||
{
|
||||
versionId: 3,
|
||||
name: 'V3',
|
||||
baseModel: 'Base IL',
|
||||
previewUrl: '/api/lm/previews/v3.png',
|
||||
sizeBytes: 2048,
|
||||
isInLibrary: true,
|
||||
shouldIgnore: false,
|
||||
},
|
||||
{
|
||||
versionId: 2,
|
||||
name: 'V2',
|
||||
baseModel: 'Base Flux',
|
||||
previewUrl: '/api/lm/previews/v2.png',
|
||||
sizeBytes: 4096,
|
||||
isInLibrary: false,
|
||||
shouldIgnore: false,
|
||||
},
|
||||
{
|
||||
versionId: 1,
|
||||
name: 'V1',
|
||||
baseModel: 'Base Flux',
|
||||
previewUrl: '/api/lm/previews/v1.png',
|
||||
sizeBytes: 8192,
|
||||
isInLibrary: true,
|
||||
shouldIgnore: false,
|
||||
},
|
||||
],
|
||||
},
|
||||
});
|
||||
|
||||
const { initVersionsTab } = await import(MODEL_VERSIONS_MODULE);
|
||||
const controller = initVersionsTab({
|
||||
modalId: 'model-versions-modal',
|
||||
modelType: 'loras',
|
||||
modelId: 333,
|
||||
currentVersionId: 1,
|
||||
});
|
||||
|
||||
await controller.load();
|
||||
|
||||
const rows = document.querySelectorAll('.model-version-row');
|
||||
expect(rows.length).toBe(2);
|
||||
const firstBadges = Array.from(rows[0].querySelectorAll('.version-badge')).map(
|
||||
badge => badge.textContent?.trim()
|
||||
);
|
||||
expect(firstBadges).toContain('Newer Version');
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user