63 lines
1.7 KiB
JavaScript
63 lines
1.7 KiB
JavaScript
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,
|
|
]);
|
|
});
|
|
});
|
|
});
|