1
1
const assert = require ( 'assert' ) ;
2
- const uuidv1 = require ( 'uuid/v1 ' ) ;
3
- const uuidv4 = require ( 'uuid/v4 ' ) ;
2
+ const { v1 : uuidv1 } = require ( 'uuid' ) ;
3
+ const { v4 : uuidv4 } = require ( 'uuid' ) ;
4
4
const { Binary } = require ( 'mongodb' ) ;
5
5
const MUUID = require ( '../lib' ) ;
6
6
@@ -110,6 +110,22 @@ describe('MUUID (accept and generate uuids according to spec - (see https://www.
110
110
assert . equal ( hasHexUpperCase ( uuid ) , false ) ;
111
111
} ) ;
112
112
} ) ;
113
+
114
+ describe ( 'modes' , ( ) => {
115
+ it ( 'relaxed mode should print friendly uuid in hex' , function ( ) {
116
+ const mUUID = MUUID . mode ( 'relaxed' ) . v1 ( ) ;
117
+ assert . equal ( isBase64 ( JSON . stringify ( mUUID ) ) , false ) ;
118
+ assert . equal ( validate ( mUUID . toString ( ) ) , true ) ;
119
+ assert . equal ( hasHexUpperCase ( mUUID . toString ( ) ) , false ) ;
120
+ } ) ;
121
+ it ( 'canonical mode should print base64 uuid ' , function ( ) {
122
+ const mUUID = MUUID . mode ( 'canonical' ) . v1 ( ) ;
123
+ const c = JSON . parse ( JSON . stringify ( mUUID ) ) ;
124
+ assert . equal ( isBase64 ( c ) , true ) ;
125
+ assert . equal ( validate ( mUUID . toString ( ) ) , true ) ;
126
+ assert . equal ( hasHexUpperCase ( mUUID . toString ( ) ) , false ) ;
127
+ } ) ;
128
+ } ) ;
113
129
} ) ;
114
130
115
131
function validate ( uuid , format ) {
@@ -131,3 +147,9 @@ function validate(uuid, format) {
131
147
) ;
132
148
}
133
149
}
150
+
151
+ function isBase64 ( s ) {
152
+ const bc = / [ A - Z a - z 0 - 9 + / = ] / . test ( s ) ;
153
+ const lc = / .* = $ / . test ( s ) ; // make sure it ends with '='
154
+ return bc && lc ;
155
+ }
0 commit comments