Skip to content

Commit c6e09cc

Browse files
fix: treat an empty codec array the same as no codecs listed and show warning
1 parent 698c0b5 commit c6e09cc

2 files changed

Lines changed: 17 additions & 1 deletion

File tree

src/validator.test.ts

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -164,6 +164,19 @@ describe('validateViewer', () => {
164164
expect(result.warnings[0].message).toContain('zstd');
165165
expect(result.warnings[0].message).toContain('compatibility unknown');
166166
});
167+
168+
it('returns warning when viewer has empty codec list but data uses compression', () => {
169+
const viewer = createViewer({ compression_codecs: [] });
170+
const metadata = createMetadata({ compressor: { id: 'blosc' } });
171+
172+
const result = validateViewer(viewer, metadata);
173+
174+
expect(result.compatible).toBe(true);
175+
expect(result.warnings).toHaveLength(1);
176+
expect(result.warnings[0].capability).toBe('compression_codecs');
177+
expect(result.warnings[0].message).toContain('blosc');
178+
expect(result.warnings[0].message).toContain('compatibility unknown');
179+
});
167180
});
168181

169182
describe('axes support', () => {

src/validator.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,10 @@ export function validateViewer(
6363
// Check compression codecs
6464
if (metadata.compressor) {
6565
const codec = metadata.compressor.id || metadata.compressor;
66-
if (!viewer.capabilities.compression_codecs) {
66+
if (
67+
!viewer.capabilities.compression_codecs ||
68+
viewer.capabilities.compression_codecs.length === 0
69+
) {
6770
// Viewer doesn't declare codec support - can't guarantee compatibility
6871
warnings.push({
6972
capability: 'compression_codecs',

0 commit comments

Comments
 (0)