@@ -7,6 +7,7 @@ type Region = {
77 id : string ;
88 publicAccess : boolean ;
99 backupsEnabled : boolean ;
10+ provider : 'aws' | 'gcp' | 'custom' ;
1011 organizationId : string | null ;
1112} ;
1213
@@ -18,8 +19,12 @@ const normalizeTableOutput = (output: string) => {
1819 . map ( ( line ) => line . split ( / \s + / ) ) ;
1920} ;
2021
21- function createRegion ( id : string , organizationId : string | null = null ) : Region {
22- return { id, publicAccess : true , backupsEnabled : true , organizationId } ;
22+ function stripMessages ( choices : { name : string ; message : string } [ ] ) {
23+ return choices . map ( ( choice ) => ( { ...choice , message : stripAnsi ( choice . message ) } ) ) ;
24+ }
25+
26+ function createRegion ( id : string , organizationId : string | null = null , provider : Region [ 'provider' ] = 'aws' ) : Region {
27+ return { id, publicAccess : true , backupsEnabled : true , provider, organizationId } ;
2328}
2429
2530describe ( 'groupAndSortRegions' , ( ) => {
@@ -29,9 +34,20 @@ describe('groupAndSortRegions', () => {
2934
3035 const result = groupAndSortRegions ( regions ) ;
3136
32- expect ( result ) . toEqual ( [
33- { name : 'us-east-1' , message : 'us-east-1' } ,
34- { name : 'eu-west-1' , message : 'eu-west-1' }
37+ expect ( stripMessages ( result ) ) . toEqual ( [
38+ { name : 'us-east-1' , message : 'us-east-1 (AWS)' } ,
39+ { name : 'eu-west-1' , message : 'eu-west-1 (AWS)' }
40+ ] ) ;
41+ } ) ;
42+
43+ it ( 'should add cloud provider labels to region messages' , ( ) => {
44+ const regions = [ createRegion ( 'us-east-1' , null , 'aws' ) , createRegion ( 'europe-west1' , null , 'gcp' ) ] ;
45+
46+ const result = groupAndSortRegions ( regions ) ;
47+
48+ expect ( stripMessages ( result ) ) . toEqual ( [
49+ { name : 'us-east-1' , message : 'us-east-1 (AWS)' } ,
50+ { name : 'europe-west1' , message : 'europe-west1 (GCP)' }
3551 ] ) ;
3652 } ) ;
3753
@@ -58,22 +74,30 @@ describe('groupAndSortRegions', () => {
5874
5975 const result = groupAndSortRegions ( regions ) ;
6076
61- expect ( result ) . toEqual ( [
62- { name : 'org-region-1' , message : 'org-region-1' } ,
63- { name : 'org-region-2' , message : 'org-region-2' }
77+ expect ( stripMessages ( result ) ) . toEqual ( [
78+ { name : 'org-region-1' , message : 'org-region-1 (AWS) ' } ,
79+ { name : 'org-region-2' , message : 'org-region-2 (AWS) ' }
6480 ] ) ;
6581 } ) ;
82+
83+ it ( 'should add custom provider labels to organization region messages' , ( ) => {
84+ const regions = [ createRegion ( 'org-region-1' , 'org-123' , 'custom' ) ] ;
85+
86+ const result = groupAndSortRegions ( regions ) ;
87+
88+ expect ( stripMessages ( result ) ) . toEqual ( [ { name : 'org-region-1' , message : 'org-region-1 (Custom)' } ] ) ;
89+ } ) ;
6690 } ) ;
6791
6892 describe ( 'with both global and organization regions' , ( ) => {
6993 it ( 'should add group prefixes to messages' , ( ) => {
70- const regions = [ createRegion ( 'us-east-1' ) , createRegion ( 'org-region-1' , 'org-123' ) ] ;
94+ const regions = [ createRegion ( 'us-east-1' ) , createRegion ( 'org-region-1' , 'org-123' , 'custom' ) ] ;
7195
7296 const result = groupAndSortRegions ( regions ) ;
7397
74- expect ( result ) . toEqual ( [
75- { name : 'org-region-1' , message : '[Organization] org-region-1' } ,
76- { name : 'us-east-1' , message : '[Global] us-east-1' }
98+ expect ( stripMessages ( result ) ) . toEqual ( [
99+ { name : 'org-region-1' , message : '[Organization] org-region-1 (Custom) ' } ,
100+ { name : 'us-east-1' , message : '[Global] us-east-1 (AWS) ' }
77101 ] ) ;
78102 } ) ;
79103
@@ -116,15 +140,15 @@ describe('groupAndSortRegions', () => {
116140
117141 const result = groupAndSortRegions ( regions ) ;
118142
119- expect ( result ) . toEqual ( [ { name : 'us-west-2' , message : 'us-west-2' } ] ) ;
143+ expect ( stripMessages ( result ) ) . toEqual ( [ { name : 'us-west-2' , message : 'us-west-2 (AWS) ' } ] ) ;
120144 } ) ;
121145
122146 it ( 'should handle single organization region' , ( ) => {
123147 const regions = [ createRegion ( 'org-region-1' , 'org-123' ) ] ;
124148
125149 const result = groupAndSortRegions ( regions ) ;
126150
127- expect ( result ) . toEqual ( [ { name : 'org-region-1' , message : 'org-region-1' } ] ) ;
151+ expect ( stripMessages ( result ) ) . toEqual ( [ { name : 'org-region-1' , message : 'org-region-1 (AWS) ' } ] ) ;
128152 } ) ;
129153 } ) ;
130154} ) ;
0 commit comments