11// @flow
22
33import LocalMemory from '../src/index' ;
4- import type { Logger } from '@verdaccio/types' ;
5- import type { ILocalData , IPackageStorage } from '@verdaccio/local-storage' ;
64import config from './partials/config' ;
75import pkgExample from './partials/pkg' ;
6+ import MemoryHandler from '../src/memory-handler' ;
7+
8+ import type { Logger } from '@verdaccio/types' ;
9+ import type { ILocalData , IPackageStorage } from '@verdaccio/local-storage' ;
810
911const logger : Logger = {
1012 error : e => console . warn ( e ) ,
@@ -17,47 +19,116 @@ const logger: Logger = {
1719} ;
1820
1921describe ( 'memory unit test .' , ( ) => {
20- test ( 'should create an instance' , ( ) => {
21- const localMemory : ILocalData = new LocalMemory ( config , logger ) ;
22+ describe ( 'LocalMemory' , ( ) => {
23+ test ( 'should create an LocalMemory instance' , ( ) => {
24+ const localMemory : ILocalData = new LocalMemory ( config , logger ) ;
2225
23- expect ( localMemory ) . toBeDefined ( ) ;
24- } ) ;
26+ expect ( localMemory ) . toBeDefined ( ) ;
27+ } ) ;
2528
26- test ( 'should save a package' , done => {
27- const localMemory : ILocalData = new LocalMemory ( config , logger ) ;
29+ test ( 'should create add a package' , ( ) => {
30+ const localMemory : ILocalData = new LocalMemory ( config , logger ) ;
31+ localMemory . add ( 'test' ) ;
2832
29- const handler = localMemory . getPackageStorage ( 'test' ) ;
30- expect ( handler ) . toBeDefined ( ) ;
33+ expect ( localMemory . get ( ) ) . toHaveLength ( 1 ) ;
34+ } ) ;
3135
32- if ( handler ) {
33- handler . savePackage ( 'test' , pkgExample , err => {
34- expect ( err ) . toBeNull ( ) ;
35- handler . readPackage ( 'test' , ( err , data ) => {
36- expect ( err ) . toBeNull ( ) ;
37- expect ( data ) . toEqual ( pkgExample ) ;
38- done ( ) ;
39- } ) ;
40- } ) ;
41- }
36+ test ( 'should reach max limit' , ( ) => {
37+ config . limit = 2 ;
38+ const localMemory : ILocalData = new LocalMemory ( config , logger ) ;
39+ expect ( localMemory . add ( 'test1' ) ) . toBeUndefined ( ) ;
40+ expect ( localMemory . add ( 'test2' ) ) . toBeUndefined ( ) ;
41+ expect ( localMemory . add ( 'test3' ) ) . not . toBeNull ( ) ;
42+ } ) ;
43+
44+ test ( 'should remove a package' , ( ) => {
45+ const localMemory : ILocalData = new LocalMemory ( config , logger ) ;
46+ localMemory . add ( 'test' ) ;
47+ localMemory . remove ( 'test' ) ;
48+
49+ expect ( localMemory . get ( ) ) . toHaveLength ( 0 ) ;
50+ } ) ;
4251 } ) ;
4352
44- test ( 'should delete a package' , done => {
45- const localMemory : ILocalData = new LocalMemory ( config , logger ) ;
53+ describe ( 'MemoryHandler' , ( ) => {
54+ test ( 'should create an MemoryHandler instance' , ( ) => {
55+ const memoryHandler : ILocalPackageManager = new MemoryHandler ( 'test' , pkgExample , logger ) ;
56+
57+ expect ( memoryHandler ) . toBeDefined ( ) ;
58+ } ) ;
59+
60+ test ( 'should save a package' , done => {
61+ const localMemory : ILocalData = new LocalMemory ( config , logger ) ;
4662
47- const handler : IPackageStorage = localMemory . getPackageStorage ( 'test2' ) ;
48- expect ( handler ) . toBeDefined ( ) ;
49- if ( handler ) {
50- handler . createPackage ( 'test2' , pkgExample , err => {
51- expect ( err ) . toBeNull ( ) ;
52- handler . deletePackage ( 'test2' , ( err , data ) => {
63+ const handler = localMemory . getPackageStorage ( 'test' ) ;
64+ expect ( handler ) . toBeDefined ( ) ;
65+
66+ if ( handler ) {
67+ handler . savePackage ( 'test' , pkgExample , err => {
5368 expect ( err ) . toBeNull ( ) ;
5469 handler . readPackage ( 'test' , ( err , data ) => {
55- expect ( err ) . not . toBeNull ( ) ;
56- expect ( err . message ) . toMatch ( / p a c k a g e n o t f o u n d / ) ;
70+ expect ( err ) . toBeNull ( ) ;
71+ expect ( data ) . toEqual ( pkgExample ) ;
5772 done ( ) ;
5873 } ) ;
5974 } ) ;
60- } ) ;
61- }
75+ }
76+ } ) ;
77+
78+ test ( 'should update a package' , done => {
79+ const localMemory : ILocalData = new LocalMemory ( config , logger ) ;
80+
81+ const handler = localMemory . getPackageStorage ( 'test' ) ;
82+ expect ( handler ) . toBeDefined ( ) ;
83+ const onEnd = jest . fn ( ) ;
84+
85+ if ( handler ) {
86+ handler . savePackage ( 'test' , pkgExample , err => {
87+ expect ( err ) . toBeNull ( ) ;
88+
89+ handler . updatePackage (
90+ 'test' ,
91+ ( json , callback ) => {
92+ expect ( json ) . toBeDefined ( ) ;
93+ expect ( json . name ) . toBe ( pkgExample . name ) ;
94+ expect ( callback ) . toBeDefined ( ) ;
95+ callback ( ) ;
96+ } ,
97+ ( name , data , onEnd ) => {
98+ expect ( name ) . toBe ( 'test' ) ;
99+ expect ( data . name ) . toBe ( pkgExample . name ) ;
100+ onEnd ( ) ;
101+ expect ( onEnd ) . toBeCalled ( ) ;
102+ done ( ) ;
103+ } ,
104+ data => {
105+ expect ( data ) . toBeDefined ( ) ;
106+ return data ;
107+ } ,
108+ onEnd
109+ ) ;
110+ } ) ;
111+ }
112+ } ) ;
113+
114+ test ( 'should delete a package' , done => {
115+ const localMemory : ILocalData = new LocalMemory ( config , logger ) ;
116+
117+ const handler : IPackageStorage = localMemory . getPackageStorage ( 'test2' ) ;
118+ expect ( handler ) . toBeDefined ( ) ;
119+ if ( handler ) {
120+ handler . createPackage ( 'test2' , pkgExample , err => {
121+ expect ( err ) . toBeNull ( ) ;
122+ handler . deletePackage ( 'test2' , ( err , data ) => {
123+ expect ( err ) . toBeNull ( ) ;
124+ handler . readPackage ( 'test' , ( err , data ) => {
125+ expect ( err ) . not . toBeNull ( ) ;
126+ expect ( err . message ) . toMatch ( / p a c k a g e n o t f o u n d / ) ;
127+ done ( ) ;
128+ } ) ;
129+ } ) ;
130+ } ) ;
131+ }
132+ } ) ;
62133 } ) ;
63134} ) ;
0 commit comments