chore: simplify oauth token expiry helpers

Co-authored-by: samanhappy <2755122+samanhappy@users.noreply.github.com>
This commit is contained in:
copilot-swe-agent[bot]
2025-12-13 14:49:15 +00:00
parent 6fc0bd6a49
commit 58a73b6688
2 changed files with 6 additions and 8 deletions

View File

@@ -371,10 +371,7 @@ export class MCPHubOAuthProvider implements OAuthClientProvider {
}
private getAccessTokenExpiryMs(oauth: NonNullable<ServerConfig['oauth']>): number | undefined {
const { accessTokenExpiresAt } = oauth;
if (!accessTokenExpiresAt) return undefined;
if (typeof accessTokenExpiresAt === 'number') return accessTokenExpiresAt;
return undefined;
return oauth.accessTokenExpiresAt;
}
private async refreshAccessTokenIfNeeded(
@@ -403,9 +400,9 @@ export class MCPHubOAuthProvider implements OAuthClientProvider {
this.serverConfig = updatedConfig;
}
const refreshTokenFromResponse = tokens.refreshToken;
const nextRefreshToken = refreshTokenFromResponse ?? refreshToken;
if (refreshTokenFromResponse === undefined) {
const newRefreshToken = tokens.refreshToken;
const nextRefreshToken = newRefreshToken ?? refreshToken;
if (newRefreshToken === undefined) {
console.warn(
`Refresh response missing refresh_token for ${this.serverName}; reusing existing refresh token (some providers omit refresh_token on refresh)`,
);

View File

@@ -28,6 +28,7 @@ import type { ServerConfig } from '../../src/types/index.js';
describe('MCPHubOAuthProvider token refresh', () => {
const NOW = 1_700_000_000_000;
const TEN_MINUTES_MS = 10 * 60 * 1_000;
let nowSpy: jest.SpyInstance<number, []>;
beforeEach(() => {
@@ -92,7 +93,7 @@ describe('MCPHubOAuthProvider token refresh', () => {
...baseConfig,
oauth: {
...baseConfig.oauth,
accessTokenExpiresAt: NOW + 10 * 60 * 1_000,
accessTokenExpiresAt: NOW + TEN_MINUTES_MS,
},
};