@@ -130,7 +130,7 @@ test.group('ChaCha20-Poly1305', () => {
130130
131131 test ( 'return null when purpose is missing during decrypt' , ( { assert } ) => {
132132 const driver = new ChaCha20Poly1305 ( { id : 'lanz' , key : SECRET } )
133- const encrypted = driver . encrypt ( { username : 'lanz' } , undefined , 'login' )
133+ const encrypted = driver . encrypt ( { username : 'lanz' } , { purpose : 'login' } )
134134
135135 assert . isNull ( driver . decrypt ( encrypted ) )
136136 } )
@@ -144,12 +144,26 @@ test.group('ChaCha20-Poly1305', () => {
144144
145145 test ( 'return null when purpose are not same' , ( { assert } ) => {
146146 const driver = new ChaCha20Poly1305 ( { id : 'lanz' , key : SECRET } )
147- const encrypted = driver . encrypt ( { username : 'lanz' } , undefined , 'register' )
147+ const encrypted = driver . encrypt ( { username : 'lanz' } , { purpose : 'register' } )
148148
149149 assert . isNull ( driver . decrypt ( encrypted , 'login' ) )
150150 } )
151151
152152 test ( 'decrypt when purpose are same' , ( { assert } ) => {
153+ const driver = new ChaCha20Poly1305 ( { id : 'lanz' , key : SECRET } )
154+ const encrypted = driver . encrypt ( { username : 'lanz' } , { purpose : 'register' } )
155+
156+ assert . deepEqual ( driver . decrypt ( encrypted , 'register' ) , { username : 'lanz' } )
157+ } )
158+
159+ test ( 'encrypt with options object containing both expiresIn and purpose' , ( { assert } ) => {
160+ const driver = new ChaCha20Poly1305 ( { id : 'lanz' , key : SECRET } )
161+ const encrypted = driver . encrypt ( { username : 'lanz' } , { expiresIn : '1h' , purpose : 'register' } )
162+
163+ assert . deepEqual ( driver . decrypt ( encrypted , 'register' ) , { username : 'lanz' } )
164+ } )
165+
166+ test ( 'backward compatibility: encrypt with positional arguments' , ( { assert } ) => {
153167 const driver = new ChaCha20Poly1305 ( { id : 'lanz' , key : SECRET } )
154168 const encrypted = driver . encrypt ( { username : 'lanz' } , undefined , 'register' )
155169
0 commit comments