Skip to main content
Glama
nrwl

Nx MCP Server

Official
by nrwl
nx-cloud-onboarding-info-default.test.ts3.63 kB
import { NxCloudOnboardingInfoRequest } from '@nx-console/language-server-types'; import { defaultVersion, e2eCwd, modifyJsonFile, newWorkspace, simpleReactWorkspaceOptions, uniq, } from '@nx-console/shared-e2e-utils'; import { CloudOnboardingInfo } from '@nx-console/shared-types'; import { execSync } from 'child_process'; import { readFileSync, writeFileSync } from 'fs'; import { join } from 'path'; import { NxlsWrapper } from '../nxls-wrapper'; let nxlsWrapper: NxlsWrapper; const workspaceName = uniq('workspace'); const nxJsonPath = join(e2eCwd, workspaceName, 'nx.json'); let defaultNxJsonContents: string; describe('nx cloud onboarding - default', () => { beforeAll(async () => { newWorkspace({ name: workspaceName, options: simpleReactWorkspaceOptions, packageManager: 'npm', version: defaultVersion, }); nxlsWrapper = new NxlsWrapper(); await nxlsWrapper.startNxls(join(e2eCwd, workspaceName)); defaultNxJsonContents = readFileSync(nxJsonPath, 'utf-8'); }); beforeEach(() => { writeFileSync(nxJsonPath, defaultNxJsonContents); }); it('should return false for all onboarding info in unconnected workspace', async () => { const onboardingInfoResponse = await nxlsWrapper.sendRequest({ ...NxCloudOnboardingInfoRequest, params: {}, }); const info = onboardingInfoResponse.result as CloudOnboardingInfo; // we check everything except isWorkspaceClaimed becasue that depends on things outside of our control (the internet) expect(info.isConnectedToCloud).toEqual(false); expect(info.hasNxInCI).toEqual(false); }); it('should return connected true with access token', async () => { modifyJsonFile(nxJsonPath, (data) => ({ ...data, nxCloudAccessToken: 'DUMMY_TOKEN', })); const onboardingInfoResponse = await nxlsWrapper.sendRequest({ ...NxCloudOnboardingInfoRequest, params: {}, }); const info = onboardingInfoResponse.result as CloudOnboardingInfo; expect(info.isConnectedToCloud).toEqual(true); }); it('should return connected true with nxCloudId', async () => { modifyJsonFile(nxJsonPath, (data) => ({ ...data, nxCloudId: 'DUMMY_ID', })); const onboardingInfoResponse = await nxlsWrapper.sendRequest({ ...NxCloudOnboardingInfoRequest, params: {}, }); const info = onboardingInfoResponse.result as CloudOnboardingInfo; expect(info.isConnectedToCloud).toEqual(true); }); it('should return connected true with nxCloudId in taskRunnerOptions', async () => { modifyJsonFile(nxJsonPath, (data) => ({ ...data, tasksRunnerOptions: { default: { runner: 'nx-cloud', options: { nxCloudId: 'DUMMY_ID', }, }, }, })); const onboardingInfoResponse = await nxlsWrapper.sendRequest({ ...NxCloudOnboardingInfoRequest, params: {}, }); const info = onboardingInfoResponse.result as CloudOnboardingInfo; expect(info.isConnectedToCloud).toEqual(true); }); afterAll(async () => { return await nxlsWrapper.stopNxls(); }); it('should return true for CI checks after generating workflow', async () => { execSync(`npx nx g @nx/workspace:ci-workflow --ci github --name gh-ci`, { cwd: join(e2eCwd, workspaceName), }); const onboardingInfoResponse = await nxlsWrapper.sendRequest({ ...NxCloudOnboardingInfoRequest, params: {}, }); const info = onboardingInfoResponse.result as CloudOnboardingInfo; expect(info.hasNxInCI).toEqual(true); }); });

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/nrwl/nx-console'

If you have feedback or need assistance with the MCP directory API, please join our Discord server