refactor: remove CORS settings, make auth mandatory in types
- Remove enableCORS and allowedOrigins from MCPServerSettings - Make apiKey required (string, not optional) - Set enableAuth to true by default - Add comprehensive test coverage for settings types
This commit is contained in:
@@ -1,10 +1,8 @@
|
|||||||
// Settings Types
|
// Settings Types
|
||||||
export interface MCPServerSettings {
|
export interface MCPServerSettings {
|
||||||
port: number;
|
port: number;
|
||||||
enableCORS: boolean;
|
apiKey: string; // Now required, not optional
|
||||||
allowedOrigins: string[];
|
enableAuth: boolean; // Will be removed in future, kept for migration
|
||||||
apiKey?: string;
|
|
||||||
enableAuth: boolean;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface NotificationSettings {
|
export interface NotificationSettings {
|
||||||
@@ -20,10 +18,8 @@ export interface MCPPluginSettings extends MCPServerSettings, NotificationSettin
|
|||||||
|
|
||||||
export const DEFAULT_SETTINGS: MCPPluginSettings = {
|
export const DEFAULT_SETTINGS: MCPPluginSettings = {
|
||||||
port: 3000,
|
port: 3000,
|
||||||
enableCORS: true,
|
apiKey: '', // Will be auto-generated on first load
|
||||||
allowedOrigins: ['*'],
|
enableAuth: true, // Always true now
|
||||||
apiKey: '',
|
|
||||||
enableAuth: false,
|
|
||||||
autoStart: false,
|
autoStart: false,
|
||||||
// Notification defaults
|
// Notification defaults
|
||||||
notificationsEnabled: false,
|
notificationsEnabled: false,
|
||||||
|
|||||||
47
tests/settings-types.test.ts
Normal file
47
tests/settings-types.test.ts
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
import { DEFAULT_SETTINGS, MCPPluginSettings } from '../src/types/settings-types';
|
||||||
|
|
||||||
|
describe('Settings Types', () => {
|
||||||
|
describe('DEFAULT_SETTINGS', () => {
|
||||||
|
it('should have authentication enabled by default', () => {
|
||||||
|
expect(DEFAULT_SETTINGS.enableAuth).toBe(true);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should not have enableCORS field', () => {
|
||||||
|
expect((DEFAULT_SETTINGS as any).enableCORS).toBeUndefined();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should not have allowedOrigins field', () => {
|
||||||
|
expect((DEFAULT_SETTINGS as any).allowedOrigins).toBeUndefined();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should have empty apiKey by default', () => {
|
||||||
|
expect(DEFAULT_SETTINGS.apiKey).toBe('');
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should have autoStart disabled by default', () => {
|
||||||
|
expect(DEFAULT_SETTINGS.autoStart).toBe(false);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should have valid port number', () => {
|
||||||
|
expect(DEFAULT_SETTINGS.port).toBe(3000);
|
||||||
|
expect(DEFAULT_SETTINGS.port).toBeGreaterThan(0);
|
||||||
|
expect(DEFAULT_SETTINGS.port).toBeLessThan(65536);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('MCPPluginSettings interface', () => {
|
||||||
|
it('should require apiKey field', () => {
|
||||||
|
const settings: MCPPluginSettings = {
|
||||||
|
...DEFAULT_SETTINGS,
|
||||||
|
apiKey: 'test-key'
|
||||||
|
};
|
||||||
|
expect(settings.apiKey).toBe('test-key');
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should not allow enableCORS field', () => {
|
||||||
|
// This is a compile-time check, but we verify runtime
|
||||||
|
const settings: MCPPluginSettings = DEFAULT_SETTINGS;
|
||||||
|
expect((settings as any).enableCORS).toBeUndefined();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
Reference in New Issue
Block a user