@@ -22,29 +22,56 @@ describe("hash", () => {
2222 await expect ( hash ( 123 , 10 ) ) . rejects . toThrow (
2323 "Invalid content / salt: not a string" ,
2424 ) ;
25- await expect ( hash ( "hello" , "invalid" ) ) . rejects . toThrow (
26- "Invalid salt version: in" ,
25+ // @ts -expect-error: error type check
26+ await expect ( hash ( 123 , "invalid" ) ) . rejects . toThrow (
27+ "Invalid content / salt: not a string" ,
2728 ) ;
2829 } ) ;
2930
30- it ( "should reject for invalid salt format " , async ( ) => {
31+ it ( "should reject for invalid salt version " , async ( ) => {
3132 await expect ( hash ( "hello" , "invalid" ) ) . rejects . toThrow (
3233 "Invalid salt version: in" ,
3334 ) ;
3435 await expect ( hash ( "hello" , "$1$" ) ) . rejects . toThrow (
3536 "Invalid salt version: $1" ,
3637 ) ;
38+ } ) ;
39+
40+ it ( "should reject for invalid salt revision" , async ( ) => {
3741 await expect ( hash ( "hello" , "$2x$10$" ) ) . rejects . toThrow (
3842 "Invalid salt revision: x$" ,
3943 ) ;
40- await expect ( hash ( "hello" , "$2a$ " ) ) . rejects . toThrow (
41- "Illegal salt length: 0 != 16 " ,
44+ await expect ( hash ( "hello" , "$2xx " ) ) . rejects . toThrow (
45+ "Invalid salt revision: xx " ,
4246 ) ;
43- await expect ( hash ( "hello" , "$2$10$validsalthere " ) ) . rejects . toThrow (
44- "Illegal salt length: 9 != 16 " ,
47+ await expect ( hash ( "hello" , "$2xxaaa " ) ) . rejects . toThrow (
48+ "Invalid salt revision: xx " ,
4549 ) ;
50+ } ) ;
51+
52+ it ( "should reject for missing salt rounds" , async ( ) => {
53+ await expect ( hash ( "hello" , "$2a$" ) ) . rejects . toThrow ( "Missing salt rounds" ) ;
4654 await expect ( hash ( "hello" , "$2a$1Z$validsalthere" ) ) . rejects . toThrow (
47- "Illegal salt length: 9 != 16" ,
55+ "Missing salt rounds" ,
56+ ) ;
57+
58+ await expect ( hash ( "hello" , "$2a$ab$validSaltHere123" ) ) . rejects . toThrow (
59+ "Missing salt rounds" ,
60+ ) ;
61+ } ) ;
62+
63+ it ( "should reject for invalid rounds" , async ( ) => {
64+ await expect ( hash ( "hello" , "$2a$03$" + "a" . repeat ( 22 ) ) ) . rejects . toThrow (
65+ "Illegal number of rounds (4-31): 3" ,
66+ ) ;
67+ await expect ( hash ( "hello" , "$2a$32$" + "a" . repeat ( 22 ) ) ) . rejects . toThrow (
68+ "Illegal number of rounds (4-31): 32" ,
69+ ) ;
70+ } ) ;
71+
72+ it ( "should reject for invalid salt length" , async ( ) => {
73+ await expect ( hash ( "hello" , "$2$10$validsalthere" ) ) . rejects . toThrow (
74+ "Illegal salt: validsalthere" ,
4875 ) ;
4976 } ) ;
5077} ) ;
@@ -69,27 +96,54 @@ describe("hashSync", () => {
6996 expect ( ( ) => hashSync ( 123 , 10 ) ) . toThrow (
7097 "Invalid content / salt: not a string" ,
7198 ) ;
72- expect ( ( ) => hashSync ( "hello" , "invalid" ) ) . toThrow (
73- "Invalid salt version: in" ,
99+ // @ts -expect-error: error type check
100+ expect ( ( ) => hashSync ( 123 , "invalid" ) ) . toThrow (
101+ "Invalid content / salt: not a string" ,
74102 ) ;
75103 } ) ;
76104
77- it ( "should throw error for invalid salt format " , ( ) => {
105+ it ( "should reject for invalid salt version " , ( ) => {
78106 expect ( ( ) => hashSync ( "hello" , "invalid" ) ) . toThrow (
79107 "Invalid salt version: in" ,
80108 ) ;
81109 expect ( ( ) => hashSync ( "hello" , "$1$" ) ) . toThrow ( "Invalid salt version: $1" ) ;
82- expect ( ( ) => hashSync ( "hello" , "$2x$10$valid_salt_here" ) ) . toThrow (
110+ } ) ;
111+
112+ it ( "should reject for invalid salt revision" , ( ) => {
113+ expect ( ( ) => hashSync ( "hello" , "$2x$10$" ) ) . toThrow (
83114 "Invalid salt revision: x$" ,
84115 ) ;
85- expect ( ( ) => hashSync ( "hello" , "$2a$0 " ) ) . toThrow (
86- "Illegal salt length: 0 != 16 " ,
116+ expect ( ( ) => hashSync ( "hello" , "$2xx " ) ) . toThrow (
117+ "Invalid salt revision: xx " ,
87118 ) ;
88- expect ( ( ) => hashSync ( "hello" , "$2$10$validsalthere " ) ) . toThrow (
89- "Illegal salt length: 9 != 16 " ,
119+ expect ( ( ) => hashSync ( "hello" , "$2xxaaa " ) ) . toThrow (
120+ "Invalid salt revision: xx " ,
90121 ) ;
122+ } ) ;
123+
124+ it ( "should reject for missing salt rounds" , ( ) => {
125+ expect ( ( ) => hashSync ( "hello" , "$2a$" ) ) . toThrow ( "Missing salt rounds" ) ;
91126 expect ( ( ) => hashSync ( "hello" , "$2a$1Z$validsalthere" ) ) . toThrow (
92- "Illegal salt length: 9 != 16" ,
127+ "Missing salt rounds" ,
128+ ) ;
129+
130+ expect ( ( ) => hashSync ( "hello" , "$2a$ab$validSaltHere123" ) ) . toThrow (
131+ "Missing salt rounds" ,
132+ ) ;
133+ } ) ;
134+
135+ it ( "should reject for invalid rounds" , ( ) => {
136+ expect ( ( ) => hashSync ( "hello" , "$2a$03$" + "a" . repeat ( 22 ) ) ) . toThrow (
137+ "Illegal number of rounds (4-31): 3" ,
138+ ) ;
139+ expect ( ( ) => hashSync ( "hello" , "$2a$32$" + "a" . repeat ( 22 ) ) ) . toThrow (
140+ "Illegal number of rounds (4-31): 32" ,
141+ ) ;
142+ } ) ;
143+
144+ it ( "should reject for invalid salt length" , ( ) => {
145+ expect ( ( ) => hashSync ( "hello" , "$2$10$validsalthere" ) ) . toThrow (
146+ "Illegal salt: validsalthere" ,
93147 ) ;
94148 } ) ;
95149} ) ;
0 commit comments