@@ -36,19 +36,63 @@ describe("isValidSignIn", () => {
3636 iss : mockConfig . NHS_LOGIN_URL ,
3737 aud : mockConfig . NHS_LOGIN_CLIENT_ID ,
3838 identity_proofing_level : "P9" ,
39+ vot : "P9.Cp.Ck" ,
3940 } ) ;
4041
4142 const result = isValidSignIn ( mockAccount , mockConfig ) ;
4243 expect ( result ) . toBe ( true ) ;
4344 } ) ;
4445
45- it ( "should return false and logs if token is invalid" , ( ) => {
46+ it ( "should return false and logs if iss is invalid" , ( ) => {
4647 const mockAccount = { id_token : "invalid-token" } as Account ;
4748
4849 ( jwtDecode as jest . Mock ) . mockReturnValue ( {
4950 iss : "incorrect-issuer" ,
51+ aud : mockConfig . NHS_LOGIN_CLIENT_ID ,
52+ identity_proofing_level : "P9" ,
53+ vot : "P9.Cp.Ck" ,
54+ } ) ;
55+
56+ const result = isValidSignIn ( mockAccount , mockConfig ) ;
57+ expect ( result ) . toBe ( false ) ;
58+ } ) ;
59+
60+ it ( "should return false and logs if aud is invalid" , ( ) => {
61+ const mockAccount = { id_token : "invalid-token" } as Account ;
62+
63+ ( jwtDecode as jest . Mock ) . mockReturnValue ( {
64+ iss : mockConfig . NHS_LOGIN_URL ,
5065 aud : "incorrect-audience" ,
66+ identity_proofing_level : "P9" ,
67+ vot : "P9.Cp.Ck" ,
68+ } ) ;
69+
70+ const result = isValidSignIn ( mockAccount , mockConfig ) ;
71+ expect ( result ) . toBe ( false ) ;
72+ } ) ;
73+
74+ it ( "should return false and logs if identity_proofing_level is invalid" , ( ) => {
75+ const mockAccount = { id_token : "invalid-token" } as Account ;
76+
77+ ( jwtDecode as jest . Mock ) . mockReturnValue ( {
78+ iss : mockConfig . NHS_LOGIN_URL ,
79+ aud : mockConfig . NHS_LOGIN_CLIENT_ID ,
5180 identity_proofing_level : "P0" ,
81+ vot : "P9.Cp.Ck" ,
82+ } ) ;
83+
84+ const result = isValidSignIn ( mockAccount , mockConfig ) ;
85+ expect ( result ) . toBe ( false ) ;
86+ } ) ;
87+
88+ it ( "should return false and logs if vot is invalid" , ( ) => {
89+ const mockAccount = { id_token : "invalid-token" } as Account ;
90+
91+ ( jwtDecode as jest . Mock ) . mockReturnValue ( {
92+ iss : mockConfig . NHS_LOGIN_URL ,
93+ aud : mockConfig . NHS_LOGIN_CLIENT_ID ,
94+ identity_proofing_level : "P9" ,
95+ vot : "P9.Sausages" ,
5296 } ) ;
5397
5498 const result = isValidSignIn ( mockAccount , mockConfig ) ;
0 commit comments