main
go 39 lines 1.12 KB
Raw
1 package sdk
2
3 import (
4 "testing"
5 "time"
6
7 "github.com/gosuda/portal-tunnel/v2/types"
8 )
9
10 func TestNewRenewRequestIncludesMetadata(t *testing.T) {
11 t.Parallel()
12
13 metadata := types.LeaseMetadata{
14 Description: "live app",
15 Tags: []string{"demo", "live"},
16 Owner: "ops",
17 Thumbnail: "https://example.com/thumb.png",
18 Hide: true,
19 }
20
21 req := newRenewRequest(2*time.Minute, "token", "203.0.113.10", metadata)
22 if req.AccessToken != "token" {
23 t.Fatalf("AccessToken = %q, want token", req.AccessToken)
24 }
25 if req.TTL != 120 {
26 t.Fatalf("TTL = %d, want 120", req.TTL)
27 }
28 if req.ReportedIP != "203.0.113.10" {
29 t.Fatalf("ReportedIP = %q, want 203.0.113.10", req.ReportedIP)
30 }
31 if got := req.Metadata; got.Description != metadata.Description || got.Owner != metadata.Owner || got.Thumbnail != metadata.Thumbnail || got.Hide != metadata.Hide || len(got.Tags) != 2 || got.Tags[0] != "demo" || got.Tags[1] != "live" {
32 t.Fatalf("Metadata = %#v, want %#v", got, metadata)
33 }
34
35 metadata.Tags[0] = "mutated"
36 if req.Metadata.Tags[0] != "demo" {
37 t.Fatalf("Metadata tags alias input slice: got %q", req.Metadata.Tags[0])
38 }
39 }