初始提交:OCI 面板后端(含 GenAI 网关一期)

This commit is contained in:
Wang Defa
2026-07-09 15:31:04 +08:00
commit b9a3e97e84
168 changed files with 31794 additions and 0 deletions
+87
View File
@@ -0,0 +1,87 @@
package service
import (
"context"
"testing"
"oci-portal/internal/oci"
)
func TestSubscriptionsPassThrough(t *testing.T) {
client := &fakeClient{
tenancy: oci.TenancyInfo{Name: "t", HomeRegionKey: "FRA"},
subscriptions: []oci.SubscriptionInfo{
{ID: "ocid1.organizationssubscription.oc1..a", ServiceName: "CLOUDCM"},
{ID: "ocid1.organizationssubscription.oc1..b", ServiceName: "SAAS"},
},
}
svc := newTestService(t, client)
cfg := importAliveConfig(t, svc)
subs, err := svc.Subscriptions(context.Background(), cfg.ID)
if err != nil {
t.Fatalf("Subscriptions: %v", err)
}
if len(subs) != 2 {
t.Fatalf("len(subs) = %d, want 2", len(subs))
}
if got, want := subs[0].ServiceName, "CLOUDCM"; got != want {
t.Errorf("subs[0].ServiceName = %q, want %q", got, want)
}
}
func TestSubscriptionDetailPassesID(t *testing.T) {
client := &fakeClient{
tenancy: oci.TenancyInfo{Name: "t", HomeRegionKey: "FRA"},
subDetail: oci.SubscriptionDetail{
ID: "ocid1.organizationssubscription.oc1..a",
ServiceName: "CLOUDCM",
PaymentModel: "FREE_TRIAL",
Promotions: []oci.PromotionInfo{{Status: "ACTIVE", Amount: 300}},
},
}
svc := newTestService(t, client)
cfg := importAliveConfig(t, svc)
detail, err := svc.SubscriptionDetail(context.Background(), cfg.ID, "ocid1.organizationssubscription.oc1..a")
if err != nil {
t.Fatalf("SubscriptionDetail: %v", err)
}
if got, want := client.subDetailID, "ocid1.organizationssubscription.oc1..a"; got != want {
t.Errorf("passed subscription id = %q, want %q", got, want)
}
if len(detail.Promotions) != 1 || detail.Promotions[0].Amount != 300 {
t.Errorf("Promotions = %+v, want one ACTIVE amount 300", detail.Promotions)
}
}
func TestSubscriptionDetailRejectsEmptyID(t *testing.T) {
svc := newTestService(t, &fakeClient{tenancy: oci.TenancyInfo{Name: "t"}})
cfg := importAliveConfig(t, svc)
if _, err := svc.SubscriptionDetail(context.Background(), cfg.ID, ""); err == nil {
t.Error("SubscriptionDetail(empty id): got nil error, want failure")
}
}
func TestLimitServicesPassThrough(t *testing.T) {
client := &fakeClient{
tenancy: oci.TenancyInfo{Name: "t", HomeRegionKey: "FRA"},
limitServices: []oci.LimitService{
{Name: "compute", Description: "Compute"},
{Name: "vcn", Description: "Virtual Cloud Network"},
},
}
svc := newTestService(t, client)
cfg := importAliveConfig(t, svc)
services, err := svc.LimitServices(context.Background(), cfg.ID, "")
if err != nil {
t.Fatalf("LimitServices: %v", err)
}
if len(services) != 2 {
t.Fatalf("len(services) = %d, want 2", len(services))
}
if got, want := services[0].Name, "compute"; got != want {
t.Errorf("services[0].Name = %q, want %q", got, want)
}
}