1+ import { getAgeGroup } from "@src/app/_components/hub/ageGroupHelper" ;
2+ import { AgeGroup } from "@src/models/ageBasedHub" ;
13import { NhsNumber } from "@src/models/vaccine" ;
24import { getUpdatedSession } from "@src/utils/auth/callbacks/get-updated-session" ;
35import { AccessToken , Age , BirthDate , ExpiresAt , IdToken } from "@src/utils/auth/types" ;
@@ -7,20 +9,24 @@ import { JWT } from "next-auth/jwt";
79
810jest . mock ( "sanitize-data" , ( ) => ( { sanitize : jest . fn ( ) } ) ) ;
911jest . mock ( "@src/utils/date" , ( ) => ( { calculateAge : jest . fn ( ) } ) ) ;
12+ jest . mock ( "@src/app/_components/hub/ageGroupHelper.ts" , ( ) => ( { getAgeGroup : jest . fn ( ) } ) ) ;
1013
1114const mockBirthdate = "1995-01-01" ;
1215const mockCalculatedAge = 30 ;
16+ const mockAgeGroup = AgeGroup . AGE_75_to_80 ;
1317
14- describe ( "getSession " , ( ) => {
18+ describe ( "getUpdatedSession " , ( ) => {
1519 beforeEach ( ( ) => {
1620 ( calculateAge as jest . Mock ) . mockImplementation ( ( ) => mockCalculatedAge ) ;
21+ ( getAgeGroup as jest . Mock ) . mockImplementation ( ( ) => mockAgeGroup ) ;
1722 } ) ;
1823
19- it ( "updates session user fields from token when both defined " , ( ) => {
24+ it ( "updates session with user fields and age information from token " , ( ) => {
2025 const session : Session = {
2126 user : {
2227 nhs_number : "" as NhsNumber ,
2328 age : 0 as Age ,
29+ age_group : undefined ,
2430 } ,
2531 expires : "some-date" ,
2632 } ;
@@ -43,13 +49,15 @@ describe("getSession", () => {
4349
4450 expect ( result . user . nhs_number ) . toBe ( "test-nhs-number" ) ;
4551 expect ( result . user . age ) . toBe ( mockCalculatedAge ) ;
52+ expect ( result . user . age_group ) . toBe ( mockAgeGroup ) ;
4653 } ) ;
4754
4855 it ( "does not update session if token.user is missing" , ( ) => {
4956 const session : Session = {
5057 user : {
5158 nhs_number : "old-nhs-number" as NhsNumber ,
5259 age : 36 as Age ,
60+ age_group : AgeGroup . AGE_25_to_64 ,
5361 } ,
5462 expires : "some-date" ,
5563 } ;
@@ -60,6 +68,7 @@ describe("getSession", () => {
6068
6169 expect ( result . user . nhs_number ) . toBe ( "old-nhs-number" ) ;
6270 expect ( result . user . age ) . toBe ( 36 ) ;
71+ expect ( result . user . age_group ) . toBe ( AgeGroup . AGE_25_to_64 ) ;
6372 } ) ;
6473
6574 it ( "does not update session if session.user is missing" , ( ) => {
0 commit comments