1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106
|
package unit
import (
"context"
"testing"
"time"
"github.com/linode/linodego"
"github.com/stretchr/testify/assert"
)
func TestProfileTokens_List(t *testing.T) {
fixtureData, err := fixtures.GetFixture("profile_tokens_list")
assert.NoError(t, err)
var base ClientBaseCase
base.SetUp(t)
defer base.TearDown(t)
base.MockGet("profile/tokens", fixtureData)
tokens, err := base.Client.ListTokens(context.Background(), nil)
assert.NoError(t, err)
assert.NotNil(t, tokens)
assert.Len(t, tokens, 2)
expectedTimes := []string{
"2024-03-10T12:00:00Z",
"2024-03-11T15:45:00Z",
}
for i, token := range tokens {
if assert.NotNil(t, token.Created) {
expectedTime, _ := time.Parse(time.RFC3339, expectedTimes[i])
assert.Equal(t, expectedTime, *token.Created)
}
}
}
func TestProfileToken_Get(t *testing.T) {
fixtureData, err := fixtures.GetFixture("profile_token_get")
assert.NoError(t, err)
var base ClientBaseCase
base.SetUp(t)
defer base.TearDown(t)
base.MockGet("profile/tokens/123", fixtureData)
token, err := base.Client.GetToken(context.Background(), 123)
assert.NoError(t, err)
assert.NotNil(t, token)
assert.Equal(t, "My API Token", token.Label)
}
func TestProfileToken_Create(t *testing.T) {
fixtureData, err := fixtures.GetFixture("profile_token_create")
assert.NoError(t, err)
var base ClientBaseCase
base.SetUp(t)
defer base.TearDown(t)
base.MockPost("profile/tokens", fixtureData)
opts := linodego.TokenCreateOptions{
Label: "New API Token",
Scopes: "read_write",
}
token, err := base.Client.CreateToken(context.Background(), opts)
assert.NoError(t, err)
assert.NotNil(t, token)
assert.Equal(t, "New API Token", token.Label)
}
func TestProfileToken_Update(t *testing.T) {
fixtureData, err := fixtures.GetFixture("profile_token_update")
assert.NoError(t, err)
var base ClientBaseCase
base.SetUp(t)
defer base.TearDown(t)
base.MockPut("profile/tokens/123", fixtureData)
opts := linodego.TokenUpdateOptions{
Label: "Updated API Token",
}
token, err := base.Client.UpdateToken(context.Background(), 123, opts)
assert.NoError(t, err)
assert.NotNil(t, token)
assert.Equal(t, "Updated API Token", token.Label)
}
func TestProfileToken_Delete(t *testing.T) {
var base ClientBaseCase
base.SetUp(t)
defer base.TearDown(t)
base.MockDelete("profile/tokens/123", nil)
err := base.Client.DeleteToken(context.Background(), 123)
assert.NoError(t, err)
}
|