Skip to content

Commit

Permalink
fix: normalize package was broken #758
Browse files Browse the repository at this point in the history
  • Loading branch information
juanpicado committed Jun 14, 2018
1 parent 84d859c commit 3717ad4
Show file tree
Hide file tree
Showing 2 changed files with 50 additions and 3 deletions.
7 changes: 4 additions & 3 deletions src/lib/storage-utils.js
Expand Up @@ -11,7 +11,7 @@ import type {IStorage} from '../../types';
const pkgFileName = 'package.json';
const fileExist: string = 'EEXISTS';
const noSuchFile: string = 'ENOENT';
const DEFAULT_REVISION: string = `0-0000000000000000`;
export const DEFAULT_REVISION: string = `0-0000000000000000`;

const generatePackageTemplate = function(name: string): Package {
return {
Expand Down Expand Up @@ -41,7 +41,9 @@ function normalizePackage(pkg: Package) {
'time'];

pkgProperties.forEach((key) => {
if (_.isNil(isObject(pkg[key]))) {
const pkgProp = pkg[key];

if (_.isNil(pkgProp) || isObject(pkgProp) === false) {
pkg[key] = {};
}
});
Expand Down Expand Up @@ -221,7 +223,6 @@ export {
generateRevision,
getLatestReadme,
cleanUpReadme,
DEFAULT_REVISION,
fileExist,
noSuchFile,
pkgFileName,
Expand Down
46 changes: 46 additions & 0 deletions test/unit/storage-utils.spec.js
@@ -0,0 +1,46 @@
// @flow

import {DEFAULT_REVISION, normalizePackage} from "../../src/lib/storage-utils";
import {DIST_TAGS} from "../../src/lib/utils";
import {readFile} from "../functional/lib/test.utils";

const readMetadata = (fileName: string = 'metadata') => readFile(`../../unit/partials/${fileName}`);

describe('Storage Utils', () => {
test('normalizePackage clean', () => {
const pkg = normalizePackage({
_attachments: {},
_distfiles: {},
_rev: '',
_uplinks: {},
name: '',
versions: {},
[DIST_TAGS]: {},
});
expect(pkg).toBeDefined();
expect(pkg.time).toBeInstanceOf(Object);
expect(pkg.versions).toBeInstanceOf(Object);
expect(pkg[DIST_TAGS]).toBeInstanceOf(Object);
expect(pkg._distfiles).toBeInstanceOf(Object);
expect(pkg._attachments).toBeInstanceOf(Object);
expect(pkg._uplinks).toBeInstanceOf(Object);
});

test('normalizePackage partial metadata', () => {
const pkg = normalizePackage(readMetadata('metadata'));
expect(pkg).toBeDefined();
expect(pkg.time).toBeInstanceOf(Object);
expect(pkg.versions).toBeInstanceOf(Object);
expect(pkg[DIST_TAGS]).toBeInstanceOf(Object);
expect(pkg._distfiles).toBeInstanceOf(Object);
expect(pkg._attachments).toBeInstanceOf(Object);
expect(pkg._uplinks).toBeInstanceOf(Object);
});

test('normalizePackage partial default revision', () => {
const pkg = normalizePackage(readMetadata('metadata'));
expect(pkg).toBeDefined();
expect(pkg._rev).toBeDefined();
expect(pkg._rev).toBe(DEFAULT_REVISION);
});
});

0 comments on commit 3717ad4

Please sign in to comment.