package usecase

import (
	"testing"
	"time"

	"github.com/stretchr/testify/require"
)

func TestValidateGoogleIDTokenInfo(t *testing.T) {
	now := time.Unix(1_700_000_000, 0)
	valid := &googleIDTokenInfoResp{
		Audience: "client-123",
		Issuer:   "https://accounts.google.com",
		Subject:  "google-user",
		Expires:  "1700000060",
	}
	require.NoError(t, validateGoogleIDTokenInfo(valid, "client-123", now))

	wrongAudience := *valid
	wrongAudience.Audience = "other-client"
	require.Error(t, validateGoogleIDTokenInfo(&wrongAudience, "client-123", now))

	wrongIssuer := *valid
	wrongIssuer.Issuer = "https://attacker.example"
	require.Error(t, validateGoogleIDTokenInfo(&wrongIssuer, "client-123", now))

	expired := *valid
	expired.Expires = "1699999999"
	require.Error(t, validateGoogleIDTokenInfo(&expired, "client-123", now))
}
