From 4be717f684fa52e36fa1f3fab6742a5f32f7bd49 Mon Sep 17 00:00:00 2001 From: andig Date: Thu, 30 Oct 2025 08:55:52 +0100 Subject: [PATCH] Revert "chore: remove failing tests" This reverts commit 16452d9babe9b6b97bf506c7a3a0e0ec5dfe07b3. --- vehicle/toyota/api_test.go | 46 +++++++++++++++++++++++++++++++++ vehicle/toyota/identity_test.go | 46 +++++++++++++++++++++++++++++++++ 2 files changed, 92 insertions(+) create mode 100644 vehicle/toyota/api_test.go create mode 100644 vehicle/toyota/identity_test.go diff --git a/vehicle/toyota/api_test.go b/vehicle/toyota/api_test.go new file mode 100644 index 000000000..0ef3e65d4 --- /dev/null +++ b/vehicle/toyota/api_test.go @@ -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) +} diff --git a/vehicle/toyota/identity_test.go b/vehicle/toyota/identity_test.go new file mode 100644 index 000000000..187e96e5b --- /dev/null +++ b/vehicle/toyota/identity_test.go @@ -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") +}