@@ -11,19 +11,27 @@ describe("redact", () => {
11
11
expect ( redact ( undefined ) ) . to . be . undefined ;
12
12
} ) ;
13
13
14
+ it ( "returns a string of asterisks for non-string values" , ( ) => {
15
+ expect ( redact ( { } ) ) . to . equal ( "********" ) ;
16
+ expect ( redact ( [ ] ) ) . to . equal ( "********" ) ;
17
+ expect ( redact ( 123 ) ) . to . equal ( "********" ) ;
18
+ expect ( redact ( true ) ) . to . equal ( "********" ) ;
19
+ expect ( redact ( false ) ) . to . equal ( "********" ) ;
20
+ } ) ;
21
+
14
22
it ( "completely redacts strings shorter than 12 characters" , ( ) => {
15
- expect ( redact ( "short" ) ) . to . equal ( "*****" ) ;
16
- expect ( redact ( "mediumtext" ) ) . to . equal ( "********** " ) ;
23
+ expect ( redact ( "short" ) ) . to . equal ( "******** " ) ;
24
+ expect ( redact ( "mediumtext" ) ) . to . equal ( "********" ) ;
17
25
} ) ;
18
26
19
27
it ( "keeps last 4 characters for strings between 12 and 15 characters" , ( ) => {
20
28
expect ( redact ( "123456789012" ) ) . to . equal ( "********9012" ) ;
21
- expect ( redact ( "1234567890123" ) ) . to . equal ( "********* 0123" ) ;
29
+ expect ( redact ( "1234567890123" ) ) . to . equal ( "********0123" ) ;
22
30
} ) ;
23
31
24
32
it ( "keeps first and last 4 characters for strings 16 or more characters" , ( ) => {
25
33
expect ( redact ( "1234567890123456" ) ) . to . equal ( "1234********3456" ) ;
26
- expect ( redact ( "12345678901234567" ) ) . to . equal ( "1234********* 4567" ) ;
34
+ expect ( redact ( "12345678901234567" ) ) . to . equal ( "1234********4567" ) ;
27
35
} ) ;
28
36
} ) ;
29
37
@@ -40,10 +48,10 @@ describe("redactedStringify", () => {
40
48
const result = JSON . parse ( redactedStringify ( obj ) ) ;
41
49
42
50
expect ( result . normal ) . to . equal ( "visible" ) ;
43
- expect ( result . secret ) . to . equal ( "*******" ) ;
44
- expect ( result . mySecret ) . to . equal ( "********* -too" ) ;
45
- expect ( result [ "account-key" ] ) . to . equal ( "*********** " ) ;
46
- expect ( result . bigSecret ) . to . equal ( "this************* cret" ) ;
51
+ expect ( result . secret ) . to . equal ( "******** " ) ;
52
+ expect ( result . mySecret ) . to . equal ( "********-too" ) ;
53
+ expect ( result [ "account-key" ] ) . to . equal ( "********" ) ;
54
+ expect ( result . bigSecret ) . to . equal ( "this********cret" ) ;
47
55
} ) ;
48
56
49
57
it ( "redacts keys containing 'accountkey'" , ( ) => {
@@ -55,10 +63,40 @@ describe("redactedStringify", () => {
55
63
} ;
56
64
const result = JSON . parse ( redactedStringify ( obj ) ) ;
57
65
58
- expect ( result . accountkey ) . to . equal ( "******" ) ;
59
- expect ( result . account_key ) . to . equal ( "********* 0123" ) ;
66
+ expect ( result . accountkey ) . to . equal ( "******** " ) ;
67
+ expect ( result . account_key ) . to . equal ( "********0123" ) ;
60
68
expect ( result . myaccountkey ) . to . equal ( "1234********3456" ) ;
61
- expect ( result . longaccountkey ) . to . equal ( "test**********ey-1" ) ;
69
+ expect ( result . longaccountkey ) . to . equal ( "test********ey-1" ) ;
70
+ } ) ;
71
+
72
+ it ( "redacts keys containing 'accesstoken'" , ( ) => {
73
+ const obj = {
74
+ accesstoken : "secret" ,
75
+ access_token : "1234567890123" ,
76
+ myaccesstoken : "1234567890123456" ,
77
+ longaccesstoken : "test-access-token-1" ,
78
+ } ;
79
+ const result = JSON . parse ( redactedStringify ( obj ) ) ;
80
+
81
+ expect ( result . accesstoken ) . to . equal ( "********" ) ;
82
+ expect ( result . access_token ) . to . equal ( "********0123" ) ;
83
+ expect ( result . myaccesstoken ) . to . equal ( "1234********3456" ) ;
84
+ expect ( result . longaccesstoken ) . to . equal ( "test********en-1" ) ;
85
+ } ) ;
86
+
87
+ it ( "redacts keys containing 'refreshtoken'" , ( ) => {
88
+ const obj = {
89
+ refreshtoken : "secret" ,
90
+ refresh_token : "1234567890123" ,
91
+ myrefreshtoken : "1234567890123456" ,
92
+ longrefreshtoken : "test-refresh-token-1" ,
93
+ } ;
94
+ const result = JSON . parse ( redactedStringify ( obj ) ) ;
95
+
96
+ expect ( result . refreshtoken ) . to . equal ( "********" ) ;
97
+ expect ( result . refresh_token ) . to . equal ( "********0123" ) ;
98
+ expect ( result . myrefreshtoken ) . to . equal ( "1234********3456" ) ;
99
+ expect ( result . longrefreshtoken ) . to . equal ( "test********en-1" ) ;
62
100
} ) ;
63
101
64
102
it ( "respects custom replacer function" , ( ) => {
@@ -72,9 +110,9 @@ describe("redactedStringify", () => {
72
110
73
111
const result = JSON . parse ( redactedStringify ( obj , replacer ) ) ;
74
112
75
- expect ( result . secret ) . to . equal ( "*******" ) ;
113
+ expect ( result . secret ) . to . equal ( "******** " ) ;
76
114
expect ( result . normal ) . to . equal ( "SHOW-ME" ) ;
77
- expect ( result . longSecret ) . to . equal ( "1234************************ 9012" ) ;
115
+ expect ( result . longSecret ) . to . equal ( "1234********9012" ) ;
78
116
} ) ;
79
117
80
118
it ( "respects space parameter for formatting" , ( ) => {
@@ -89,7 +127,7 @@ describe("redactedStringify", () => {
89
127
expect ( formatted ) . to . include ( " " ) ;
90
128
expect ( JSON . parse ( formatted ) ) . to . deep . equal ( {
91
129
normal : "visible" ,
92
- secret : "*******" ,
130
+ secret : "******** " ,
93
131
longSecret : "1234********3456" ,
94
132
} ) ;
95
133
} ) ;
0 commit comments