Skip to content

Commit 6a981d2

Browse files
committed
add support for local development
1 parent 29d1b0a commit 6a981d2

File tree

2 files changed

+39
-2
lines changed

2 files changed

+39
-2
lines changed

src/portal-options/auth-config-provider.spec.ts

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import { HttpException } from '@nestjs/common';
33
import {
44
DiscoveryService,
55
EnvAuthConfigService,
6+
EnvService,
67
} from '@openmfp/portal-server-lib';
78
import type { Request } from 'express';
89
import { mock } from 'jest-mock-extended';
@@ -11,11 +12,18 @@ describe('PMAuthConfigProvider', () => {
1112
let provider: PMAuthConfigProvider;
1213
let discoveryService: jest.Mocked<DiscoveryService>;
1314
let envAuthConfigService: jest.Mocked<EnvAuthConfigService>;
15+
let mockEnvService: jest.Mocked<EnvService>;
1416

1517
beforeEach(() => {
1618
discoveryService = mock<DiscoveryService>();
1719
envAuthConfigService = mock<EnvAuthConfigService>();
18-
provider = new PMAuthConfigProvider(discoveryService, envAuthConfigService);
20+
mockEnvService = mock<EnvService>();
21+
mockEnvService.getEnv.mockReturnValue({ isLocal: false });
22+
provider = new PMAuthConfigProvider(
23+
discoveryService,
24+
envAuthConfigService,
25+
mockEnvService,
26+
);
1927
jest.resetModules();
2028
process.env = {
2129
AUTH_SERVER_URL_DEFAULT: 'authUrl',
@@ -95,4 +103,16 @@ describe('PMAuthConfigProvider', () => {
95103
baseDomain: 'example.com',
96104
});
97105
});
106+
107+
it('getDomain should return defaults for local developmentn', () => {
108+
const req = { hostname: 'localhost' } as Request;
109+
mockEnvService.getEnv.mockReturnValue({ isLocal: true });
110+
111+
const result = provider.getDomain(req);
112+
113+
expect(result).toEqual({
114+
organization: 'openmfp',
115+
baseDomain: 'localhost',
116+
});
117+
});
98118
});

src/portal-options/service-providers/content-configuration-service-providers.service.spec.ts

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
import { RequestContext } from '../openmfp-request-context-provider.js';
22
import { ContentConfigurationServiceProvidersService } from './content-configuration-service-providers.service.js';
3+
import { welcomeNodeConfig } from './models/welcome-node-config.js';
4+
import { EnvService } from '@openmfp/portal-server-lib';
35
import { GraphQLClient } from 'graphql-request';
6+
import { mock } from 'jest-mock-extended';
47

58
jest.mock('graphql-request', () => {
69
return {
@@ -16,10 +19,13 @@ jest.mock('graphql-request', () => {
1619
describe('ContentConfigurationServiceProvidersService', () => {
1720
let service: ContentConfigurationServiceProvidersService;
1821
let mockClient: jest.Mocked<GraphQLClient>;
22+
let mockEnvService: jest.Mocked<EnvService>;
1923
let context: RequestContext;
2024

2125
beforeEach(() => {
22-
service = new ContentConfigurationServiceProvidersService();
26+
mockEnvService = mock();
27+
mockEnvService.getEnv.mockReturnValue({ isLocal: false });
28+
service = new ContentConfigurationServiceProvidersService(mockEnvService);
2329
mockClient = new GraphQLClient('') as any;
2430
(GraphQLClient as jest.Mock).mockReturnValue(mockClient);
2531
context = {
@@ -44,6 +50,17 @@ describe('ContentConfigurationServiceProvidersService', () => {
4450
).rejects.toThrow('Context with organization is required');
4551
});
4652

53+
it('throws if context organization is missing', async () => {
54+
context.isSubDomain = false;
55+
const result = await service.getServiceProviders(
56+
'token',
57+
['entity'],
58+
context,
59+
);
60+
61+
expect(result).toEqual(welcomeNodeConfig);
62+
});
63+
4764
it('returns parsed content configurations', async () => {
4865
mockClient.request.mockResolvedValue({
4966
ui_platform_mesh_io: {

0 commit comments

Comments
 (0)