parent
e0c51c529d
commit
4be717f684
2 changed files with 92 additions and 0 deletions
46
vehicle/toyota/api_test.go
Normal file
46
vehicle/toyota/api_test.go
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
//go:build integration
|
||||
|
||||
package toyota
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
"testing"
|
||||
|
||||
"github.com/evcc-io/evcc/util"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func TestAPI(t *testing.T) {
|
||||
// Skip if no credentials provided
|
||||
user := os.Getenv("TOYOTA_USER")
|
||||
password := os.Getenv("TOYOTA_PASSWORD")
|
||||
if user == "" || password == "" {
|
||||
t.Skip("TOYOTA_USER or TOYOTA_PASSWORD not set")
|
||||
}
|
||||
|
||||
// Create and login identity
|
||||
log := util.NewLogger("foo")
|
||||
identity := NewIdentity(log)
|
||||
err := identity.Login(user, password)
|
||||
require.NoError(t, err)
|
||||
|
||||
// Create API client
|
||||
api := NewAPI(log, identity)
|
||||
|
||||
// Test Vehicles method
|
||||
vehicles, err := api.Vehicles()
|
||||
require.NoError(t, err)
|
||||
fmt.Printf("Vehicles: %+v\n", vehicles)
|
||||
require.NotEmpty(t, vehicles, "expected at least one vehicle")
|
||||
|
||||
for _, vin := range vehicles {
|
||||
require.NotEmpty(t, vin, "expected non-empty VIN")
|
||||
}
|
||||
|
||||
// Test Status method for first vehicle
|
||||
status, err := api.Status(vehicles[0])
|
||||
require.NoError(t, err)
|
||||
require.NotNil(t, status)
|
||||
fmt.Printf("Vehicle status: %+v\n", status)
|
||||
}
|
||||
46
vehicle/toyota/identity_test.go
Normal file
46
vehicle/toyota/identity_test.go
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
//go:build integration
|
||||
|
||||
package toyota
|
||||
|
||||
import (
|
||||
"os"
|
||||
"testing"
|
||||
|
||||
"github.com/evcc-io/evcc/util"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func TestIdentityLogin(t *testing.T) {
|
||||
// Skip if no credentials provided
|
||||
user := os.Getenv("TOYOTA_USER")
|
||||
password := os.Getenv("TOYOTA_PASSWORD")
|
||||
if user == "" || password == "" {
|
||||
t.Fatal("TOYOTA_USER or TOYOTA_PASSWORD not set")
|
||||
}
|
||||
|
||||
util.LogLevel("trace", nil) // Enable trace logging
|
||||
log := util.NewLogger("test")
|
||||
identity := NewIdentity(log)
|
||||
|
||||
err := identity.Login(user, password)
|
||||
require.NoError(t, err)
|
||||
|
||||
// Verify we got a valid token
|
||||
token, err := identity.Token()
|
||||
require.NoError(t, err)
|
||||
require.NotEmpty(t, token.AccessToken)
|
||||
require.NotEmpty(t, token.RefreshToken)
|
||||
require.True(t, token.Valid())
|
||||
|
||||
originalAccessToken := token.AccessToken
|
||||
|
||||
// Test token refresh
|
||||
newToken, err := identity.RefreshToken(token)
|
||||
require.NoError(t, err)
|
||||
require.NotEmpty(t, newToken.AccessToken)
|
||||
require.NotEmpty(t, newToken.RefreshToken)
|
||||
require.True(t, newToken.Valid())
|
||||
|
||||
// Verify we got a new access token
|
||||
require.NotEqual(t, originalAccessToken, newToken.AccessToken, "Expected new access token after refresh")
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue