Skip to content

Commit 60c5fa6

Browse files
sarath-nair-sonarsourcesonartech
authored andcommitted
SONAR-25803 Calculate PAT expiry date in UTC (#3760)
GitOrigin-RevId: 8cceb8b386da5c35bc9f8c5bce4eaeecab841fd3
1 parent 36d9ca1 commit 60c5fa6

File tree

2 files changed

+18
-3
lines changed

2 files changed

+18
-3
lines changed

libs/sq-server-commons/src/helpers/__tests__/tokens-test.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,15 @@ describe('computeTokenExpirationDate', () => {
118118
])('should correctly compute the proper expiration date for %s days', (days, expected) => {
119119
expect(computeTokenExpirationDate(Number(days))).toBe(expected);
120120
});
121+
122+
it('should calculate expiration date in UTC regardless of local timezone', () => {
123+
const result = computeTokenExpirationDate(Number(TokenExpiration.OneMonth));
124+
expect(result).toBe('2022-07-01');
125+
const date = new Date(result);
126+
expect(date.getUTCDate()).toBe(1);
127+
expect(date.getUTCMonth()).toBe(6);
128+
expect(date.getUTCFullYear()).toBe(2022);
129+
});
121130
});
122131

123132
describe('getNextTokenName', () => {

libs/sq-server-commons/src/helpers/tokens.ts

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -66,9 +66,15 @@ export async function getAvailableExpirationOptions() {
6666
}
6767

6868
export function computeTokenExpirationDate(days: number) {
69-
const expirationDate = now();
70-
expirationDate.setDate(expirationDate.getDate() + days);
71-
return toShortISO8601String(expirationDate);
69+
const currentDate = now();
70+
const utcDate = new Date(
71+
Date.UTC(
72+
currentDate.getUTCFullYear(),
73+
currentDate.getUTCMonth(),
74+
currentDate.getUTCDate() + days,
75+
),
76+
);
77+
return toShortISO8601String(utcDate);
7278
}
7379

7480
export function getNextTokenName(tokenNameBase: string, tokens: UserToken[]) {

0 commit comments

Comments
 (0)