Skip to content

Commit 882381c

Browse files
authored
fix(kiali): fix sessionTime configuration and tests (#1099)
* fix(kiali): fix sessionTime configuration and tests * Remove config.d.ts fix issue #1100 * Be sure Url set ends in '/'
1 parent c3832cc commit 882381c

File tree

13 files changed

+781
-61
lines changed

13 files changed

+781
-61
lines changed
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
-----BEGIN CERTIFICATE-----
2+
MIIEczCCA1ugAwIBAgIBADANBgkqhkiG9w0BAQQFAD..AkGA1UEBhMCR0Ix
3+
EzARBgNVBAgTClNvbWUtU3RhdGUxFDASBgNVBAoTC0..0EgTHRkMTcwNQYD
4+
VQQLEy5DbGFzcyAxIFB1YmxpYyBQcmltYXJ5IENlcn..XRpb24gQXV0aG9y
5+
aXR5MRQwEgYDVQQDEwtCZXN0IENBIEx0ZDAeFw0wMD..TUwMTZaFw0wMTAy
6+
MDQxOTUwMTZaMIGHMQswCQYDVQQGEwJHQjETMBEGA1..29tZS1TdGF0ZTEU
7+
MBIGA1UEChMLQmVzdCBDQSBMdGQxNzA1BgNVBAsTLk..DEgUHVibGljIFBy
8+
aW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxFD..AMTC0Jlc3QgQ0Eg
9+
THRkMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCg..Tz2mr7SZiAMfQyu
10+
vBjM9OiJjRazXBZ1BjP5CE/Wm/Rr500PRK+Lh9x5eJ../ANBE0sTK0ZsDGM
11+
ak2m1g7oruI3dY3VHqIxFTz0Ta1d+NAjwnLe4nOb7/..k05ShhBrJGBKKxb
12+
8n104o/5p8HAsZPdzbFMIyNjJzBM2o5y5A13wiLitE..fyYkQzaxCw0Awzl
13+
kVHiIyCuaF4wj571pSzkv6sv+4IDMbT/XpCo8L6wTa..sh+etLD6FtTjYbb
14+
rvZ8RQM1tlKdoMHg2qxraAV++HNBYmNWs0duEdjUbJ..XI9TtnS4o1Ckj7P
15+
OfljiQIDAQABo4HnMIHkMB0GA1UdDgQWBBQ8urMCRL..5AkIp9NJHJw5TCB
16+
tAYDVR0jBIGsMIGpgBQ8urMCRLYYMHUKU5AkIp9NJH..aSBijCBhzELMAkG
17+
A1UEBhMCR0IxEzARBgNVBAgTClNvbWUtU3RhdGUxFD..AoTC0Jlc3QgQ0Eg
18+
THRkMTcwNQYDVQQLEy5DbGFzcyAxIFB1YmxpYyBQcm..ENlcnRpZmljYXRp
19+
b24gQXV0aG9yaXR5MRQwEgYDVQQDEwtCZXN0IENBIE..DAMBgNVHRMEBTAD
20+
AQH/MA0GCSqGSIb3DQEBBAUAA4IBAQC1uYBcsSncwA..DCsQer772C2ucpX
21+
xQUE/C0pWWm6gDkwd5D0DSMDJRqV/weoZ4wC6B73f5..bLhGYHaXJeSD6Kr
22+
XcoOwLdSaGmJYslLKZB3ZIDEp0wYTGhgteb6JFiTtn..sf2xdrYfPCiIB7g
23+
BMAV7Gzdc4VspS6ljrAhbiiawdBiQlQmsBeFz9JkF4..b3l8BoGN+qMa56Y
24+
It8una2gY4l2O//on88r5IWJlm1L0oA8e4fR2yrBHX..adsGeFKkyNrwGi/
25+
7vQMfXdGsRrXNGRGnX+vWDZ3/zWI0joDtCkNnqEpVn..HoX
26+
-----END CERTIFICATE-----
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"expiresOn": "2024-01-23T09:23:58.36945795Z",
3+
"username": "istio-system:kiali-service-account"
4+
}
Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
[
2+
{
3+
"name": "bookinfo",
4+
"cluster": "Kubernetes",
5+
"isAmbient": false,
6+
"labels": {
7+
"istio-injection": "enabled",
8+
"kubernetes.io/metadata.name": "bookinfo",
9+
"pod-security.kubernetes.io/audit": "privileged",
10+
"pod-security.kubernetes.io/audit-version": "v1.24",
11+
"pod-security.kubernetes.io/warn": "privileged",
12+
"pod-security.kubernetes.io/warn-version": "v1.24"
13+
},
14+
"annotations": {
15+
"openshift.io/description": "",
16+
"openshift.io/display-name": "",
17+
"openshift.io/requester": "kubeadmin",
18+
"openshift.io/sa.scc.mcs": "s0:c26,c15",
19+
"openshift.io/sa.scc.supplemental-groups": "1000680000/10000",
20+
"openshift.io/sa.scc.uid-range": "1000680000/10000"
21+
}
22+
},
23+
{
24+
"name": "default",
25+
"cluster": "Kubernetes",
26+
"isAmbient": false,
27+
"labels": {
28+
"kubernetes.io/metadata.name": "default",
29+
"pod-security.kubernetes.io/audit": "privileged",
30+
"pod-security.kubernetes.io/enforce": "privileged",
31+
"pod-security.kubernetes.io/warn": "privileged"
32+
},
33+
"annotations": {
34+
"openshift.io/sa.scc.mcs": "s0:c1,c0",
35+
"openshift.io/sa.scc.supplemental-groups": "1000000000/10000",
36+
"openshift.io/sa.scc.uid-range": "1000000000/10000"
37+
}
38+
},
39+
{
40+
"name": "hostpath-provisioner",
41+
"cluster": "Kubernetes",
42+
"isAmbient": false,
43+
"labels": {
44+
"kubernetes.io/metadata.name": "hostpath-provisioner",
45+
"pod-security.kubernetes.io/audit": "privileged",
46+
"pod-security.kubernetes.io/audit-version": "v1.24",
47+
"pod-security.kubernetes.io/warn": "privileged",
48+
"pod-security.kubernetes.io/warn-version": "v1.24"
49+
},
50+
"annotations": {
51+
"kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"v1\",\"kind\":\"Namespace\",\"metadata\":{\"annotations\":{},\"name\":\"hostpath-provisioner\"}}\n",
52+
"openshift.io/sa.scc.mcs": "s0:c26,c0",
53+
"openshift.io/sa.scc.supplemental-groups": "1000650000/10000",
54+
"openshift.io/sa.scc.uid-range": "1000650000/10000"
55+
}
56+
},
57+
{
58+
"name": "istio-system",
59+
"cluster": "Kubernetes",
60+
"isAmbient": false,
61+
"labels": {
62+
"kubernetes.io/metadata.name": "istio-system",
63+
"pod-security.kubernetes.io/audit": "privileged",
64+
"pod-security.kubernetes.io/audit-version": "v1.24",
65+
"pod-security.kubernetes.io/warn": "privileged",
66+
"pod-security.kubernetes.io/warn-version": "v1.24",
67+
"topology.istio.io/network": ""
68+
},
69+
"annotations": {
70+
"openshift.io/description": "",
71+
"openshift.io/display-name": "",
72+
"openshift.io/requester": "kubeadmin",
73+
"openshift.io/sa.scc.mcs": "s0:c26,c5",
74+
"openshift.io/sa.scc.supplemental-groups": "1000660000/10000",
75+
"openshift.io/sa.scc.uid-range": "1000660000/10000"
76+
}
77+
},
78+
{
79+
"name": "kiali",
80+
"cluster": "Kubernetes",
81+
"isAmbient": false,
82+
"labels": {
83+
"kubernetes.io/metadata.name": "kiali",
84+
"pod-security.kubernetes.io/audit": "restricted",
85+
"pod-security.kubernetes.io/audit-version": "v1.24",
86+
"pod-security.kubernetes.io/warn": "restricted",
87+
"pod-security.kubernetes.io/warn-version": "v1.24"
88+
},
89+
"annotations": {
90+
"openshift.io/sa.scc.mcs": "s0:c26,c20",
91+
"openshift.io/sa.scc.supplemental-groups": "1000690000/10000",
92+
"openshift.io/sa.scc.uid-range": "1000690000/10000"
93+
}
94+
}
95+
]

plugins/kiali-backend/__fixtures__/handlers.ts

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,28 @@ import { rest } from 'msw';
33
const LOCAL_ADDR = 'https://localhost:4000';
44

55
export const handlers = [
6-
rest.post(`${LOCAL_ADDR}/api/auth/info`, (_, res, ctx) => {
6+
rest.get(`${LOCAL_ADDR}/api/status`, (_, res, ctx) => {
7+
return res(
8+
ctx.status(200),
9+
ctx.json(require(`${__dirname}/data/config/status.json`)),
10+
);
11+
}),
12+
rest.get(`${LOCAL_ADDR}/api/auth/info`, (_, res, ctx) => {
713
return res(
814
ctx.status(200),
915
ctx.json(require(`${__dirname}/data/config/auth_info.json`)),
1016
);
1117
}),
18+
rest.post(`${LOCAL_ADDR}/api/authenticate`, (_, res, ctx) => {
19+
return res(
20+
ctx.status(200),
21+
ctx.json(require(`${__dirname}/data/config/authenticated.json`)),
22+
);
23+
}),
24+
rest.get(`${LOCAL_ADDR}/api/namespaces`, (_, res, ctx) => {
25+
return res(
26+
ctx.status(200),
27+
ctx.json(require(`${__dirname}/data/namespaces.json`)),
28+
);
29+
}),
1230
];
Lines changed: 150 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,150 @@
1+
import { ConfigReader } from '@backstage/config';
2+
3+
import { readKialiConfigs } from '../service/config';
4+
import {
5+
AuthStrategy,
6+
KialiAuthentication,
7+
MILLISECONDS,
8+
timeOutforWarningUser,
9+
} from './Auth';
10+
11+
const sessionSeconds = 5000;
12+
const configuration = new ConfigReader({
13+
catalog: {
14+
providers: {
15+
kiali: {
16+
url: 'https://localhost:4000',
17+
sessionTime: sessionSeconds,
18+
},
19+
},
20+
},
21+
});
22+
const rawCookie =
23+
'kiali-token-aes=/Wh8L+RdEocdRxrNH8TKOShJHD3daCA6KKVUk+jKvoinR28yXMI7/33DHMPqcoVL/bOYZ5ylmiyg95Cmmwr/LDuICgfUgnp763IHoOyMEmUI4yzvpKZfqDDtksjqWCRbkxoVT94JxBFsidtAg3pCgX8gDcXt22c65AX43hAa9auxpvF3tP22SP9aZjaJ4UOqvQ70TwhE2LT+/RLQszccnV7E9kUE7zTGaY1uAKz0bNWwXY7KQ6f/uOQob3kNZMqDtyURlEHPBNA1L/QbFIGqHcM8JbglQZWII+2iPmPMHAjNKcy2xrFNUOU5CjDex9i51KUuJ1GU6xnesChShpo+tuhchFFzklslr/2egXRaPFBBCg0F6f2E3wdIt7hdc3CfAfCQWVWka9Jp30FoOWlI+pNqa5vRFKqpuGQ+vDyzb/CdTVnotsoIraUmb3rYe7gOrHUh/DQQ+smVKYGtoq2FlJMx0k0Z29dZwyM7QKdIKoWtrgfa71y1ZpQ+9CXh/9Iu71cU+5cNq7CC+joGs2eWouBKHjgGNTeP3ZNOE63GOQ36uHcxbugbCzWheJLi5fvLfu2/VVf6a/KlV4NYRI6/uEERJwRwtwWlI4dFRQP+T9DNUuomS6uxLCm0w/5zSoNXwbyJ10iqDOQ3URDk8okgwHD/kG2c0RWvslmDztz9V6AqUWMUg95hz8BDagycir1w0th98irAFjwVd9q/jA3c6DzqB8fITqv2h0f51MMs4oe0H7b2yrpCGhHSVDC5OYEe1FgFPfRbxdG8Oa//IBlUdnoLJXh4Mz9q4gA/87kp/QukyepeV7JbaoNSvBtHplvjUl1Hs/2siKTvKySiSvW5fS0TF9PE3RNtInE/hwxkMBQj5rG8zlmR3AaMLSx5q5sjA1oBz4WLLaxprO1+J22G2+W7eiblqfb01yB3ItZfBBm78ZGFAkxZiPaLuZl0B0eEbLZS8xXKkQuIeR5gTnkqoB2haskIZsI4+rEpC6GYpYukfPBzeyR+NlJd8TFbPwjuu3yjS75rrbHL7WQtMm4C6vx7Qfj7LPWQXw60RdBV3Y0CuOOS1e2lLhNF+G2lh0jYOmUeZif8IeuvQyWtMkeTBZq2etiCoicupYrVf/urNEfGIqUld1GSgoRZonaFBhRj6//7KElU9dMVfPeKAcOZmBThnsVFkqDFF04sqPkMYkJA/o+ykxO0c4EDm/EBdmV+6LY/kdDsjEY/7XV+xx16eS5e635XWebRe2Qa0cukjY7vYZtJb7c0A0nKytzL+ptvq8ovEtrEMhNck1zOliba/epgLff4RPEqdHi+CVZvvtY01SVLVjycJVAaHLvZy7waRptRpcsAOWLu/RZ4LxBMrLW1lOk83tzFo+Sya2RGH2N6sKw0YbRQmB3qLEtRGWvIYGWMnImR+H9R7rgf/86pa6k4XvdSK0NpFOnsN5/m/jNYH8p6zQ0ZAr9eG8A3bJCEnRp+yyIzOa0L4rLEt6y74sFRK6ROHAZU8UeTz3DRC5tg+JBxlKY8MmF1jTMshcZMSYeFN5VrvJJe1VJdMuCIh68BwQsPrdaEDNTHgjQkNaKAahJrtGtY1koVZhgjsRMZjTpuDL8bBzS1APM3zsun/qvo5XrU2uQvZtFbHQBBIYNZn9h/Oyp6YPvaMRP/5xkEm8nuNGcAD5sFHzDbMVaJcdoqUuwAjvlt0BvGrzfoB+K7r1U+o6O/FS4HfcjuH1FEdPJGIXkIrc4vJ8vm18zlZWdoE/bvNhCGzBR2c9OB5FcXHXa/ie0vu4gCst1Ch+81q+2j/yy6+J7uTQbODP8kGsitGSlE8zmVahjpoUoSpI48A+8PsTFg/MkElM9wENRPHD/yPDnNMxpl7z0rAqKZpXJ8zB2ij+8SgawaydDHJCtOYaJASvM8ag==; Path=/; Expires=Tue, 23 Jan 2024 09:55:59 GMT; HttpOnly; Secure; SameSite=Strict';
24+
const verifyCookie =
25+
'kiali-token-aes=/Wh8L+RdEocdRxrNH8TKOShJHD3daCA6KKVUk+jKvoinR28yXMI7/33DHMPqcoVL/bOYZ5ylmiyg95Cmmwr/LDuICgfUgnp763IHoOyMEmUI4yzvpKZfqDDtksjqWCRbkxoVT94JxBFsidtAg3pCgX8gDcXt22c65AX43hAa9auxpvF3tP22SP9aZjaJ4UOqvQ70TwhE2LT+/RLQszccnV7E9kUE7zTGaY1uAKz0bNWwXY7KQ6f/uOQob3kNZMqDtyURlEHPBNA1L/QbFIGqHcM8JbglQZWII+2iPmPMHAjNKcy2xrFNUOU5CjDex9i51KUuJ1GU6xnesChShpo+tuhchFFzklslr/2egXRaPFBBCg0F6f2E3wdIt7hdc3CfAfCQWVWka9Jp30FoOWlI+pNqa5vRFKqpuGQ+vDyzb/CdTVnotsoIraUmb3rYe7gOrHUh/DQQ+smVKYGtoq2FlJMx0k0Z29dZwyM7QKdIKoWtrgfa71y1ZpQ+9CXh/9Iu71cU+5cNq7CC+joGs2eWouBKHjgGNTeP3ZNOE63GOQ36uHcxbugbCzWheJLi5fvLfu2/VVf6a/KlV4NYRI6/uEERJwRwtwWlI4dFRQP+T9DNUuomS6uxLCm0w/5zSoNXwbyJ10iqDOQ3URDk8okgwHD/kG2c0RWvslmDztz9V6AqUWMUg95hz8BDagycir1w0th98irAFjwVd9q/jA3c6DzqB8fITqv2h0f51MMs4oe0H7b2yrpCGhHSVDC5OYEe1FgFPfRbxdG8Oa//IBlUdnoLJXh4Mz9q4gA/87kp/QukyepeV7JbaoNSvBtHplvjUl1Hs/2siKTvKySiSvW5fS0TF9PE3RNtInE/hwxkMBQj5rG8zlmR3AaMLSx5q5sjA1oBz4WLLaxprO1+J22G2+W7eiblqfb01yB3ItZfBBm78ZGFAkxZiPaLuZl0B0eEbLZS8xXKkQuIeR5gTnkqoB2haskIZsI4+rEpC6GYpYukfPBzeyR+NlJd8TFbPwjuu3yjS75rrbHL7WQtMm4C6vx7Qfj7LPWQXw60RdBV3Y0CuOOS1e2lLhNF+G2lh0jYOmUeZif8IeuvQyWtMkeTBZq2etiCoicupYrVf/urNEfGIqUld1GSgoRZonaFBhRj6//7KElU9dMVfPeKAcOZmBThnsVFkqDFF04sqPkMYkJA/o+ykxO0c4EDm/EBdmV+6LY/kdDsjEY/7XV+xx16eS5e635XWebRe2Qa0cukjY7vYZtJb7c0A0nKytzL+ptvq8ovEtrEMhNck1zOliba/epgLff4RPEqdHi+CVZvvtY01SVLVjycJVAaHLvZy7waRptRpcsAOWLu/RZ4LxBMrLW1lOk83tzFo+Sya2RGH2N6sKw0YbRQmB3qLEtRGWvIYGWMnImR+H9R7rgf/86pa6k4XvdSK0NpFOnsN5/m/jNYH8p6zQ0ZAr9eG8A3bJCEnRp+yyIzOa0L4rLEt6y74sFRK6ROHAZU8UeTz3DRC5tg+JBxlKY8MmF1jTMshcZMSYeFN5VrvJJe1VJdMuCIh68BwQsPrdaEDNTHgjQkNaKAahJrtGtY1koVZhgjsRMZjTpuDL8bBzS1APM3zsun/qvo5XrU2uQvZtFbHQBBIYNZn9h/Oyp6YPvaMRP/5xkEm8nuNGcAD5sFHzDbMVaJcdoqUuwAjvlt0BvGrzfoB+K7r1U+o6O/FS4HfcjuH1FEdPJGIXkIrc4vJ8vm18zlZWdoE/bvNhCGzBR2c9OB5FcXHXa/ie0vu4gCst1Ch+81q+2j/yy6+J7uTQbODP8kGsitGSlE8zmVahjpoUoSpI48A+8PsTFg/MkElM9wENRPHD/yPDnNMxpl7z0rAqKZpXJ8zB2ij+8SgawaydDHJCtOYaJASvM8ag==';
26+
const kialiDetails = readKialiConfigs(configuration);
27+
28+
describe('Let create Auth', () => {
29+
it('should return session anonymous by default, cookie empty and sessionSeconds to configuration after constructor', async () => {
30+
const AuthClient = new KialiAuthentication(kialiDetails);
31+
expect(AuthClient.getSession()).toStrictEqual({
32+
sessionInfo: { expiresOn: '', username: 'anonymous' },
33+
});
34+
expect(AuthClient.getCookie()).toStrictEqual('');
35+
expect(AuthClient.getSecondsSession()).toBe(sessionSeconds * MILLISECONDS);
36+
});
37+
it('should return default sessionSeconds if not sessionTime set', async () => {
38+
const AuthClient = new KialiAuthentication(
39+
readKialiConfigs(
40+
new ConfigReader({
41+
catalog: {
42+
providers: {
43+
kiali: {
44+
url: 'https://localhost:4000',
45+
},
46+
},
47+
},
48+
}),
49+
),
50+
);
51+
expect(AuthClient.getSecondsSession()).toBe(timeOutforWarningUser);
52+
});
53+
54+
it('Should set kialiCookie correctly', async () => {
55+
const AuthClient = new KialiAuthentication(kialiDetails);
56+
AuthClient.setKialiCookie(rawCookie);
57+
expect(AuthClient.getCookie()).toBe(verifyCookie);
58+
AuthClient.setKialiCookie('');
59+
expect(AuthClient.getCookie()).toBe('');
60+
});
61+
62+
it('Not should relogin when strateDate.now = jest.fn(() => new Date("2020-05-13T12:33:37.000Z"));gy is anonymous', async () => {
63+
const AuthClient = new KialiAuthentication(kialiDetails);
64+
AuthClient.setAuthInfo({
65+
sessionInfo: { expiresOn: '', username: 'anonymous' },
66+
strategy: AuthStrategy.anonymous,
67+
});
68+
expect(AuthClient.shouldRelogin()).toBeFalsy();
69+
});
70+
71+
it('Should relogin if strategy is not anonymous and cookie is not set', async () => {
72+
const AuthClient = new KialiAuthentication(kialiDetails);
73+
AuthClient.setAuthInfo({
74+
sessionInfo: { expiresOn: '', username: 'anonymous' },
75+
strategy: AuthStrategy.token,
76+
});
77+
AuthClient.setKialiCookie('');
78+
expect(AuthClient.shouldRelogin()).toBeTruthy();
79+
});
80+
81+
it('Not should relogin if strategy is not anonymous and not expire', async () => {
82+
const AuthClient = new KialiAuthentication(kialiDetails);
83+
Date.now = jest.fn(() => new Date('2024-01-01T00:00:00.000Z').getTime());
84+
AuthClient.setAuthInfo({
85+
sessionInfo: {
86+
expiresOn: '2024-02-01T00:00:00.000Z',
87+
username: 'anonymous',
88+
},
89+
strategy: AuthStrategy.token,
90+
});
91+
AuthClient.setKialiCookie(rawCookie);
92+
expect(AuthClient.shouldRelogin()).toBeFalsy();
93+
});
94+
95+
it('Should relogin if strategy is not anonymous and cokkie was expire', async () => {
96+
const AuthClient = new KialiAuthentication(kialiDetails);
97+
Date.now = jest.fn(() => new Date('2024-03-01T00:00:00.000Z').getTime());
98+
AuthClient.setAuthInfo({
99+
sessionInfo: {
100+
expiresOn: '2024-02-01T00:00:00.000Z',
101+
username: 'anonymous',
102+
},
103+
strategy: AuthStrategy.token,
104+
});
105+
AuthClient.setKialiCookie(rawCookie);
106+
expect(AuthClient.shouldRelogin()).toBeTruthy();
107+
});
108+
109+
it('Should extend session if session expired', async () => {
110+
const AuthClient = new KialiAuthentication(kialiDetails);
111+
Date.now = jest.fn(() => new Date('2024-02-01T10:00:00.000Z').getTime());
112+
AuthClient.setAuthInfo({
113+
sessionInfo: {
114+
expiresOn: '2024-02-01T08:00:00.000Z',
115+
username: 'anonymous',
116+
},
117+
strategy: AuthStrategy.token,
118+
});
119+
AuthClient.setKialiCookie(rawCookie);
120+
expect(AuthClient.shouldRelogin()).toBeTruthy();
121+
});
122+
123+
it('Should extend session if timeLeft is lower than sessionSeconds', async () => {
124+
const AuthClient = new KialiAuthentication(kialiDetails);
125+
Date.now = jest.fn(() => new Date('2024-02-01T10:00:00.000Z').getTime());
126+
AuthClient.setAuthInfo({
127+
sessionInfo: {
128+
expiresOn: '2024-02-01T11:00:00.000Z',
129+
username: 'anonymous',
130+
},
131+
strategy: AuthStrategy.token,
132+
});
133+
AuthClient.setKialiCookie(rawCookie);
134+
expect(AuthClient.shouldRelogin()).toBeTruthy();
135+
});
136+
137+
it('Should not extend session if timeLeft is greater than sessionSeconds', async () => {
138+
const AuthClient = new KialiAuthentication(kialiDetails);
139+
Date.now = jest.fn(() => new Date('2024-02-01T10:00:00.000Z').getTime());
140+
AuthClient.setAuthInfo({
141+
sessionInfo: {
142+
expiresOn: '2024-02-01T12:00:00.000Z',
143+
username: 'anonymous',
144+
},
145+
strategy: AuthStrategy.token,
146+
});
147+
AuthClient.setKialiCookie(rawCookie);
148+
expect(AuthClient.shouldRelogin()).toBeFalsy();
149+
});
150+
});

0 commit comments

Comments
 (0)