diff --git a/.github/workflows/code_health.yaml b/.github/workflows/code_health.yaml index 9a0b87dd9..9b79cba0d 100644 --- a/.github/workflows/code_health.yaml +++ b/.github/workflows/code_health.yaml @@ -54,7 +54,7 @@ jobs: MDB_MCP_API_CLIENT_ID: ${{ secrets.TEST_ATLAS_CLIENT_ID }} MDB_MCP_API_CLIENT_SECRET: ${{ secrets.TEST_ATLAS_CLIENT_SECRET }} MDB_MCP_API_BASE_URL: ${{ vars.TEST_ATLAS_BASE_URL }} - run: npm test -- --exclude "tests/unit/**" --exclude "tests/integration/tools/mongodb/**" --exclude "tests/integration/*.ts" + run: npm test -- tests/integration/tools/atlas - name: Upload test results uses: actions/upload-artifact@v4 if: always() diff --git a/tests/integration/helpers.ts b/tests/integration/helpers.ts index e4913f6de..4ad07c83c 100644 --- a/tests/integration/helpers.ts +++ b/tests/integration/helpers.ts @@ -84,7 +84,7 @@ export function setupIntegrationTest( }); // Mock hasValidAccessToken for tests - if (userConfig.apiClientId && userConfig.apiClientSecret) { + if (!userConfig.apiClientId && !userConfig.apiClientSecret) { const mockFn = vi.fn().mockResolvedValue(true); session.apiClient.validateAccessToken = mockFn; } diff --git a/tests/integration/tools/atlas/atlasHelpers.ts b/tests/integration/tools/atlas/atlasHelpers.ts index 38a69291d..7de5966f6 100644 --- a/tests/integration/tools/atlas/atlasHelpers.ts +++ b/tests/integration/tools/atlas/atlasHelpers.ts @@ -19,6 +19,7 @@ export function describeWithAtlas(name: string, fn: IntegrationTestFunction): vo ...defaultTestConfig, apiClientId: process.env.MDB_MCP_API_CLIENT_ID, apiClientSecret: process.env.MDB_MCP_API_CLIENT_SECRET, + apiBaseUrl: process.env.MDB_MCP_API_BASE_URL ?? "https://cloud-dev.mongodb.com", }), () => defaultDriverOptions ); @@ -39,6 +40,13 @@ export function withProject(integration: IntegrationTest, fn: ProjectTestFunctio beforeAll(async () => { const apiClient = integration.mcpServer().session.apiClient; + // check that it has credentials + if (!apiClient.hasCredentials()) { + throw new Error("No credentials available"); + } + + // validate access token + await apiClient.validateAccessToken(); try { const group = await createProject(apiClient); projectId = group.id; @@ -111,5 +119,22 @@ async function createProject(apiClient: ApiClient): Promise>; }