import { cloneDeep } from 'lodash'; import { decorateBlob, createBlob, diffAll } from '~/snippets/utils/blob'; import { testEntries, createBlobsFromTestEntries } from '../test_utils'; jest.mock('lodash/uniqueId', () => (arg) => `${arg}fakeUniqueId`); const TEST_RAW_BLOB = { rawPath: '/test/blob/7/raw', }; describe('~/snippets/utils/blob', () => { describe('decorateBlob', () => { it('should decorate the given object with local blob properties', () => { const orig = cloneDeep(TEST_RAW_BLOB); expect(decorateBlob(orig)).toEqual({ ...TEST_RAW_BLOB, id: 'blob_local_fakeUniqueId', isLoaded: false, content: '', }); }); }); describe('createBlob', () => { it('should create an empty local blob', () => { expect(createBlob()).toEqual({ id: 'blob_local_fakeUniqueId', isLoaded: true, content: '', path: '', }); }); }); describe('diffAll', () => { it('should create diff from original files', () => { const origBlobs = createBlobsFromTestEntries( [ testEntries.deleted, testEntries.updated, testEntries.renamed, testEntries.renamedAndUpdated, ], true, ); const blobs = createBlobsFromTestEntries([ testEntries.created, testEntries.updated, testEntries.renamed, testEntries.renamedAndUpdated, ]); expect(diffAll(blobs, origBlobs)).toEqual([ testEntries.deleted.diff, testEntries.created.diff, testEntries.updated.diff, testEntries.renamed.diff, testEntries.renamedAndUpdated.diff, ]); }); }); });