Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'spec/frontend/snippets/utils/blob_spec.js')
-rw-r--r--spec/frontend/snippets/utils/blob_spec.js63
1 files changed, 63 insertions, 0 deletions
diff --git a/spec/frontend/snippets/utils/blob_spec.js b/spec/frontend/snippets/utils/blob_spec.js
new file mode 100644
index 00000000000..c20cf2e6102
--- /dev/null
+++ b/spec/frontend/snippets/utils/blob_spec.js
@@ -0,0 +1,63 @@
+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,
+ ]);
+ });
+ });
+});