@@ -37,7 +37,7 @@ func TestDatabaseBranches_Create(t *testing.T) {
37
37
})
38
38
39
39
want := & DatabaseBranch {
40
- ID : "planetscale-go-test-db-branch" ,
40
+ ID : "planetscale-go-test-db-branch" ,
41
41
Name : testBranch ,
42
42
Region : Region {
43
43
Slug : "us-west" ,
@@ -439,3 +439,120 @@ func TestDatabaseBranches_LintSchema(t *testing.T) {
439
439
440
440
c .Assert (lintErr , qt .DeepEquals , want )
441
441
}
442
+
443
+ func TestDatabaseBranches_ListClusterSKUs (t * testing.T ) {
444
+ c := qt .New (t )
445
+
446
+ ts := httptest .NewServer (http .HandlerFunc (func (w http.ResponseWriter , r * http.Request ) {
447
+ w .WriteHeader (200 )
448
+
449
+ c .Assert (r .URL .String (), qt .Equals , "/v1/organizations/my-cool-org/databases/my-cool-db/branches/main/cluster-size-skus" )
450
+ out := `[
451
+ {
452
+ "name": "PS_10",
453
+ "type": "ClusterSizeSku",
454
+ "display_name": "PS-10",
455
+ "cpu": "1/8",
456
+ "provider_instance_type": null,
457
+ "storage": null,
458
+ "ram": "1",
459
+ "enabled": true,
460
+ "provider": null,
461
+ "rate": null,
462
+ "replica_rate": null,
463
+ "default_vtgate": "VTG_5",
464
+ "default_vtgate_rate": null,
465
+ "sort_order": 1
466
+ }
467
+ ]`
468
+
469
+ _ , err := w .Write ([]byte (out ))
470
+ c .Assert (err , qt .IsNil )
471
+ }))
472
+
473
+ client , err := NewClient (WithBaseURL (ts .URL ))
474
+ c .Assert (err , qt .IsNil )
475
+
476
+ ctx := context .Background ()
477
+
478
+ orgs , err := client .DatabaseBranches .ListClusterSKUs (ctx , & ListBranchClusterSKUsRequest {
479
+ Organization : "my-cool-org" ,
480
+ Database : "my-cool-db" ,
481
+ Branch : "main" ,
482
+ })
483
+
484
+ c .Assert (err , qt .IsNil )
485
+ want := []* ClusterSKU {
486
+ {
487
+ Name : "PS_10" ,
488
+ DisplayName : "PS-10" ,
489
+ CPU : "1/8" ,
490
+ Memory : 1 ,
491
+ Enabled : true ,
492
+ DefaultVTGate : "VTG_5" ,
493
+ SortOrder : 1 ,
494
+ },
495
+ }
496
+
497
+ c .Assert (orgs , qt .DeepEquals , want )
498
+ }
499
+
500
+ func TestDatabaseBranches_ListClusterSKUsWithRates (t * testing.T ) {
501
+ c := qt .New (t )
502
+
503
+ ts := httptest .NewServer (http .HandlerFunc (func (w http.ResponseWriter , r * http.Request ) {
504
+ w .WriteHeader (200 )
505
+
506
+ c .Assert (r .URL .String (), qt .Equals , "/v1/organizations/my-cool-org/databases/my-cool-db/branches/main/cluster-size-skus?rates=true" )
507
+ out := `[
508
+ {
509
+ "name": "PS_10",
510
+ "type": "ClusterSizeSku",
511
+ "display_name": "PS-10",
512
+ "cpu": "1/8",
513
+ "provider_instance_type": null,
514
+ "storage": "100",
515
+ "ram": "1",
516
+ "sort_order": 1,
517
+ "enabled": true,
518
+ "provider": null,
519
+ "rate": 39,
520
+ "replica_rate": 13,
521
+ "default_vtgate": "VTG_5",
522
+ "default_vtgate_rate": null
523
+ }
524
+ ]`
525
+
526
+ _ , err := w .Write ([]byte (out ))
527
+ c .Assert (err , qt .IsNil )
528
+ }))
529
+
530
+ client , err := NewClient (WithBaseURL (ts .URL ))
531
+ c .Assert (err , qt .IsNil )
532
+
533
+ ctx := context .Background ()
534
+
535
+ orgs , err := client .DatabaseBranches .ListClusterSKUs (ctx , & ListBranchClusterSKUsRequest {
536
+ Organization : "my-cool-org" ,
537
+ Database : "my-cool-db" ,
538
+ Branch : "main" ,
539
+ }, WithRates ())
540
+
541
+ c .Assert (err , qt .IsNil )
542
+ want := []* ClusterSKU {
543
+ {
544
+ Name : "PS_10" ,
545
+ DisplayName : "PS-10" ,
546
+ CPU : "1/8" ,
547
+ Memory : 1 ,
548
+ Enabled : true ,
549
+ Storage : Pointer [int64 ](100 ),
550
+ Rate : Pointer [int64 ](39 ),
551
+ ReplicaRate : Pointer [int64 ](13 ),
552
+ DefaultVTGate : "VTG_5" ,
553
+ SortOrder : 1 ,
554
+ },
555
+ }
556
+
557
+ c .Assert (orgs , qt .DeepEquals , want )
558
+ }
0 commit comments