46 lines
1 KiB
Go
46 lines
1 KiB
Go
//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)
|
|
}
|