All files / extensions/default/src/utils getBulkdataValue.test.js

0% Statements 0/37
0% Branches 0/8
0% Functions 0/6
0% Lines 0/36

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106                                                                                                                                                                                                                   
import getBulkdataValue from './getBulkdataValue';
 
jest.mock('@ohif/core');
 
global.URL.createObjectURL = jest.fn(() => 'blob:');
 
describe('getBulkdataValue', () => {
  const config = {
    singlepart: true,
  };
 
  const params = {
    instance: {
      StudyInstanceUID: 'study-uid',
      SeriesInstanceUID: 'series-uid',
      SOPInstanceUID: 'sop-uid',
    },
  };
 
  it('should return the BulkDataURI with defaultType if singlepart is true without accept', () => {
    const value = {
      BulkDataURI: 'https://example.com/bulkdata',
      retrieveBulkData: jest.fn().mockResolvedValueOnce(new Uint8Array([0, 1, 2])),
    };
 
    const result = getBulkdataValue(config, {
      ...params,
      tag: 'PixelData',
      instance: {
        ...params.instance,
        PixelData: value,
      },
    });
 
    expect(result).toContain(value.BulkDataURI);
    expect(result).toContain('accept=video/mp4');
    const acceptCount = result.match(/accept=video\/mp4/g)?.length || 0;
    expect(acceptCount).toBe(1);
  });
 
  it('should return the BulkDataURI with accept', () => {
    const value = {
      BulkDataURI: 'https://example.com/bulkdata?accept=video/mp4',
    };
 
    const result = getBulkdataValue(config, {
      ...params,
      tag: 'PixelData',
      instance: {
        ...params.instance,
        PixelData: value,
      },
    });
 
    expect(result).toContain(value.BulkDataURI);
    expect(result).toContain('accept=video/mp4');
    const acceptCount = result.match(/accept=video\/mp4/g)?.length || 0;
    expect(acceptCount).toBe(1);
  });
 
  it('should return the BulkDataURI with accept and query params', () => {
    const value = {
      BulkDataURI: 'https://example.com/bulkdata?test=123',
    };
 
    const result = getBulkdataValue(config, {
      ...params,
      tag: 'PixelData',
      instance: {
        ...params.instance,
        PixelData: value,
      },
    });
 
    expect(result).toContain(value.BulkDataURI);
    expect(result).toContain('accept=video/mp4');
    expect(result).toContain('test=123');
    const acceptCount = result.match(/accept=video\/mp4/g)?.length || 0;
    expect(acceptCount).toBe(1);
  });
 
  it('should return default path with accept', () => {
    const value = {
      BulkDataURI: null,
    };
 
    const defaultPath = '/testing';
    const defaultURI = `series/${params.instance.SeriesInstanceUID}/instances/${params.instance.SOPInstanceUID}${defaultPath}`;
 
    const result = getBulkdataValue(config, {
      ...params,
      defaultPath,
      tag: 'PixelData',
      instance: {
        ...params.instance,
        PixelData: value,
      },
    });
 
    expect(result).toContain(defaultURI);
    expect(result).toContain('accept=video/mp4');
    const acceptCount = result.match(/accept=video\/mp4/g)?.length || 0;
    expect(acceptCount).toBe(1);
  });
});