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' ;
15- const mockToken = 'mock-token' ;
18+ 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 ( ) ,
@@ -39,8 +35,6 @@ describe('Metalk8sLocalVolumeProvider', () => {
3935 } ) ;
4036
4137 provider = new Metalk8sLocalVolumeProvider ( mockUrl , mockToken ) ;
42- provider . k8sClient = mockCoreV1Api ;
43- provider . volumeClient = mockVolumeClient ;
4438 } ) ;
4539
4640 describe ( 'listLocalPersistentVolumes' , ( ) => {
@@ -73,7 +67,7 @@ describe('Metalk8sLocalVolumeProvider', () => {
7367 } ) ;
7468
7569 (
76- mockVolumeClient . getMetalk8sV1alpha1VolumeList as jest . Mock
70+ mockCustomObjectsApi . listClusterCustomObject as jest . Mock
7771 ) . mockResolvedValue ( {
7872 body : {
7973 items : [
@@ -155,7 +149,7 @@ describe('Metalk8sLocalVolumeProvider', () => {
155149 } ) ;
156150
157151 (
158- mockVolumeClient . getMetalk8sV1alpha1VolumeList as jest . Mock
152+ mockCustomObjectsApi . listClusterCustomObject as jest . Mock
159153 ) . mockRejectedValue ( new Error ( 'Failed to fetch volumes' ) ) ;
160154
161155 await expect (
@@ -170,7 +164,7 @@ describe('Metalk8sLocalVolumeProvider', () => {
170164 it ( 'should detach hardware volumes and virtual volumes' , async ( ) => {
171165 //S
172166 (
173- mockVolumeClient . deleteMetalk8sV1alpha1Volume as jest . Mock
167+ mockCustomObjectsApi . deleteClusterCustomObject as jest . Mock
174168 ) . mockResolvedValue ( {
175169 body : { } ,
176170 } ) ;
@@ -193,17 +187,29 @@ describe('Metalk8sLocalVolumeProvider', () => {
193187 ] ) ;
194188 //V
195189 expect (
196- mockVolumeClient . deleteMetalk8sV1alpha1Volume ,
197- ) . toHaveBeenCalledWith ( 'test-volume' ) ;
190+ mockCustomObjectsApi . deleteClusterCustomObject ,
191+ ) . toHaveBeenCalledWith (
192+ MOCK_GROUP ,
193+ MOCK_VERSION ,
194+ MOCK_PLURAL ,
195+ 'test-volume' ,
196+ { } ,
197+ ) ;
198198 expect (
199- mockVolumeClient . deleteMetalk8sV1alpha1Volume ,
200- ) . toHaveBeenCalledWith ( 'test-lvm' ) ;
199+ mockCustomObjectsApi . deleteClusterCustomObject ,
200+ ) . toHaveBeenCalledWith (
201+ MOCK_GROUP ,
202+ MOCK_VERSION ,
203+ MOCK_PLURAL ,
204+ 'test-lvm' ,
205+ { } ,
206+ ) ;
201207 } ) ;
202208
203209 it ( 'should raise an error if metalk8s volume deletion fails' , async ( ) => {
204210 //S
205211 (
206- mockVolumeClient . deleteMetalk8sV1alpha1Volume as jest . Mock
212+ mockCustomObjectsApi . deleteClusterCustomObject as jest . Mock
207213 ) . mockRejectedValue ( new Error ( 'Failed to delete metalk8s volume' ) ) ;
208214 //E+V
209215 await expect (
0 commit comments