11import { describe , it , expect , vi } from 'vitest' ;
2- import { getStatusCondition , resolveProviderType , generateColorMap , buildTreeData } from './graphUtils' ;
2+ import { getStatusCondition , resolveProviderTypeFromApiVersion , generateColorMap , buildTreeData } from './graphUtils' ;
33import { ProviderConfigs , ManagedResourceGroup , ManagedResourceItem } from '../../lib/shared/types' ;
44
55describe ( 'getStatusCondition' , ( ) => {
@@ -26,41 +26,24 @@ describe('getStatusCondition', () => {
2626 } ) ;
2727} ) ;
2828
29- describe ( 'resolveProviderType' , ( ) => {
30- it ( 'returns correct providerType if found' , ( ) => {
31- const configs : ProviderConfigs [ ] = [
32- {
33- provider : 'provider-a' ,
34- items : [
35- { metadata : { name : 'foo' } , apiVersion : 'btp/v1' } ,
36- { metadata : { name : 'bar' } , apiVersion : 'cloudfoundry/v1' } ,
37- ] ,
38- } ,
39- {
40- provider : 'provider-b' ,
41- items : [ { metadata : { name : 'baz' } , apiVersion : 'gardener/v1' } ] ,
42- } ,
43- ] as any ;
44- expect ( resolveProviderType ( 'foo' , configs ) ) . toBe ( 'provider-btp' ) ;
45- expect ( resolveProviderType ( 'bar' , configs ) ) . toBe ( 'provider-cf' ) ;
46- expect ( resolveProviderType ( 'baz' , configs ) ) . toBe ( 'provider-gardener' ) ;
29+ describe ( 'resolveProviderTypeFromApiVersion' , ( ) => {
30+ it ( 'extracts domain from apiVersion and removes "account." prefix' , ( ) => {
31+ expect ( resolveProviderTypeFromApiVersion ( 'account.btp.sap.crossplane.io/v1alpha1' ) ) . toBe ( 'btp.sap.crossplane.io' ) ;
4732 } ) ;
4833
49- it ( 'returns apiVersion or configName if no match for known providers ' , ( ) => {
50- const configs : ProviderConfigs [ ] = [
51- {
52- provider : 'provider-a' ,
53- items : [ { metadata : { name : 'other' } , apiVersion : 'custom/v1' } ] ,
54- } ,
55- ] as any ;
56- expect ( resolveProviderType ( 'other' , configs ) ) . toBe ( 'custom/v1 ' ) ;
34+ it ( 'extracts domain from apiVersion without "account." prefix ' , ( ) => {
35+ expect ( resolveProviderTypeFromApiVersion ( 'cloudfoundry.crossplane.io/v1alpha1' ) ) . toBe ( 'cloudfoundry.crossplane.io' ) ;
36+ expect ( resolveProviderTypeFromApiVersion ( 'gardener.crossplane.io/v1beta1' ) ) . toBe ( 'gardener.crossplane.io' ) ;
37+ expect ( resolveProviderTypeFromApiVersion ( 'kubernetes.crossplane.io/v1' ) ) . toBe ( 'kubernetes.crossplane.io' ) ;
38+ } ) ;
39+
40+ it ( 'returns "unknown" for empty apiVersion' , ( ) => {
41+ expect ( resolveProviderTypeFromApiVersion ( '' ) ) . toBe ( 'unknown ' ) ;
5742 } ) ;
5843
59- it ( 'returns configName if not found' , ( ) => {
60- const configs : ProviderConfigs [ ] = [
61- { provider : 'provider-a' , items : [ { metadata : { name : 'foo' } , apiVersion : 'btp/v1' } ] } ,
62- ] as any ;
63- expect ( resolveProviderType ( 'notfound' , configs ) ) . toBe ( 'notfound' ) ;
44+ it ( 'handles apiVersion without version part' , ( ) => {
45+ expect ( resolveProviderTypeFromApiVersion ( 'btp.sap.crossplane.io' ) ) . toBe ( 'btp.sap.crossplane.io' ) ;
46+ expect ( resolveProviderTypeFromApiVersion ( 'account.btp.sap.crossplane.io' ) ) . toBe ( 'btp.sap.crossplane.io' ) ;
6447 } ) ;
6548} ) ;
6649
0 commit comments