11import { CoreV1Api , CustomObjectsApi } from '@kubernetes/client-node' ;
2+ import { updateApiServerConfig } from './api' ;
23import Metalk8sLocalVolumeProvider , {
34 VolumeType ,
45} from './Metalk8sLocalVolumeProvider' ;
5- import { updateApiServerConfig } from './api' ;
6- import { Metalk8sV1alpha1VolumeClient } from './Metalk8sVolumeClient.generated' ;
76
87jest . mock ( '../k8s/api' , ( ) => ( {
98 updateApiServerConfig : jest . fn ( ) ,
109} ) ) ;
1110
11+ const MOCK_GROUP = 'storage.metalk8s.scality.com' ;
12+ const MOCK_VERSION = 'v1alpha1' ;
13+ const MOCK_PLURAL = 'volumes' ;
14+
1215describe ( 'Metalk8sLocalVolumeProvider' , ( ) => {
1316 let provider : Metalk8sLocalVolumeProvider ;
1417 const mockUrl = 'mock-url' ;
1518 const mockToken = jest . fn ( ( ) => Promise . resolve ( 'mock-token' ) ) ;
1619
1720 const mockCustomObjectsApi = {
1821 listClusterCustomObject : jest . fn ( ) ,
22+ deleteClusterCustomObject : jest . fn ( ) ,
1923 } as unknown as CustomObjectsApi ;
2024
21- const mockVolumeClient = {
22- deleteMetalk8sV1alpha1Volume : jest . fn ( ) . mockResolvedValue ( { body : { } } ) ,
23- getMetalk8sV1alpha1VolumeList : jest . fn ( ) ,
24- getMetalk8sV1alpha1Volume : jest . fn ( ) ,
25- createMetalk8sV1alpha1Volume : jest . fn ( ) ,
26- patchMetalk8sV1alpha1Volume : jest . fn ( ) ,
27- } as unknown as Metalk8sV1alpha1VolumeClient ;
28-
2925 const mockCoreV1Api = {
3026 listNode : jest . fn ( ) ,
3127 listPersistentVolume : jest . fn ( ) ,
@@ -71,7 +67,7 @@ describe('Metalk8sLocalVolumeProvider', () => {
7167 } ) ;
7268
7369 (
74- mockVolumeClient . getMetalk8sV1alpha1VolumeList as jest . Mock
70+ mockCustomObjectsApi . listClusterCustomObject as jest . Mock
7571 ) . mockResolvedValue ( {
7672 body : {
7773 items : [
@@ -153,7 +149,7 @@ describe('Metalk8sLocalVolumeProvider', () => {
153149 } ) ;
154150
155151 (
156- mockVolumeClient . getMetalk8sV1alpha1VolumeList as jest . Mock
152+ mockCustomObjectsApi . listClusterCustomObject as jest . Mock
157153 ) . mockRejectedValue ( new Error ( 'Failed to fetch volumes' ) ) ;
158154
159155 await expect (
@@ -168,7 +164,7 @@ describe('Metalk8sLocalVolumeProvider', () => {
168164 it ( 'should detach hardware volumes and virtual volumes' , async ( ) => {
169165 //S
170166 (
171- mockVolumeClient . deleteMetalk8sV1alpha1Volume as jest . Mock
167+ mockCustomObjectsApi . deleteClusterCustomObject as jest . Mock
172168 ) . mockResolvedValue ( {
173169 body : { } ,
174170 } ) ;
@@ -191,17 +187,29 @@ describe('Metalk8sLocalVolumeProvider', () => {
191187 ] ) ;
192188 //V
193189 expect (
194- mockVolumeClient . deleteMetalk8sV1alpha1Volume ,
195- ) . toHaveBeenCalledWith ( 'test-volume' ) ;
190+ mockCustomObjectsApi . deleteClusterCustomObject ,
191+ ) . toHaveBeenCalledWith (
192+ MOCK_GROUP ,
193+ MOCK_VERSION ,
194+ MOCK_PLURAL ,
195+ 'test-volume' ,
196+ { } ,
197+ ) ;
196198 expect (
197- mockVolumeClient . deleteMetalk8sV1alpha1Volume ,
198- ) . toHaveBeenCalledWith ( 'test-lvm' ) ;
199+ mockCustomObjectsApi . deleteClusterCustomObject ,
200+ ) . toHaveBeenCalledWith (
201+ MOCK_GROUP ,
202+ MOCK_VERSION ,
203+ MOCK_PLURAL ,
204+ 'test-lvm' ,
205+ { } ,
206+ ) ;
199207 } ) ;
200208
201209 it ( 'should raise an error if metalk8s volume deletion fails' , async ( ) => {
202210 //S
203211 (
204- mockVolumeClient . deleteMetalk8sV1alpha1Volume as jest . Mock
212+ mockCustomObjectsApi . deleteClusterCustomObject as jest . Mock
205213 ) . mockRejectedValue ( new Error ( 'Failed to delete metalk8s volume' ) ) ;
206214 //E+V
207215 await expect (
0 commit comments