|
1 | 1 | import { describe, it, expect, beforeEach, vi } from 'vitest'; |
2 | 2 | import { CancellationToken } from 'vscode-languageserver-protocol'; |
3 | 3 | import { getEntityMap } from '../../../src/context/SectionContextBuilder'; |
4 | | -import { getManagedResourceStackTemplateHandler } from '../../../src/handlers/ResourceHandler'; |
| 4 | +import { |
| 5 | + getManagedResourceStackTemplateHandler, |
| 6 | + removeResourceTypeHandler, |
| 7 | +} from '../../../src/handlers/ResourceHandler'; |
5 | 8 | import { GetStackTemplateParams } from '../../../src/stacks/StackRequestType'; |
6 | 9 | import { createMockComponents } from '../../utils/MockServerComponents'; |
7 | 10 |
|
@@ -121,3 +124,35 @@ describe('ResourceHandler - getManagedResourceStackTemplateHandler', () => { |
121 | 124 | await expect(handler(params, CancellationToken.None)).rejects.toThrow('AWS API Error'); |
122 | 125 | }); |
123 | 126 | }); |
| 127 | + |
| 128 | +describe('ResourceHandler - removeResourceTypeHandler', () => { |
| 129 | + let mockComponents: ReturnType<typeof createMockComponents>; |
| 130 | + let handler: any; |
| 131 | + |
| 132 | + beforeEach(() => { |
| 133 | + vi.clearAllMocks(); |
| 134 | + mockComponents = createMockComponents(); |
| 135 | + handler = removeResourceTypeHandler(mockComponents); |
| 136 | + }); |
| 137 | + |
| 138 | + it('should call resourceStateManager.removeResourceType with typeName', () => { |
| 139 | + handler('AWS::S3::Bucket'); |
| 140 | + |
| 141 | + expect(mockComponents.resourceStateManager.removeResourceType.calledOnceWith('AWS::S3::Bucket')).toBe(true); |
| 142 | + }); |
| 143 | + |
| 144 | + it('should handle multiple calls', () => { |
| 145 | + handler('AWS::S3::Bucket'); |
| 146 | + handler('AWS::Lambda::Function'); |
| 147 | + |
| 148 | + expect(mockComponents.resourceStateManager.removeResourceType.callCount).toBe(2); |
| 149 | + expect(mockComponents.resourceStateManager.removeResourceType.calledWith('AWS::S3::Bucket')).toBe(true); |
| 150 | + expect(mockComponents.resourceStateManager.removeResourceType.calledWith('AWS::Lambda::Function')).toBe(true); |
| 151 | + }); |
| 152 | + |
| 153 | + it('should throw error for invalid input', () => { |
| 154 | + expect(() => handler('')).toThrow(TypeError); |
| 155 | + expect(() => handler(null as any)).toThrow(); |
| 156 | + expect(() => handler(undefined as any)).toThrow(); |
| 157 | + }); |
| 158 | +}); |
0 commit comments