package automation

import (
	"testing"
)

func TestConnectorPushOriginatingAuthorityEnvelopeReadsPersistedSelector(t *testing.T) {
	const raw = `{"id":"user-1","profile_id":"profile-old","sessionClass":"platform_browser","credential_id":"session-1"}`

	var decoded ConnectorPushDurableSnapshot
	if err := decodeConnectorPushOriginatingAuthority(raw, &decoded); err != nil {
		t.Fatal(err)
	}
	if decoded.OriginatingCredentialID != "session-1" ||
		decoded.OriginatingUserSession.ID != "user-1" ||
		decoded.OriginatingUserSession.ProfileID != "profile-old" ||
		decoded.OriginatingUserSession.SessionClass != "platform_browser" {
		t.Fatalf("decoded originating authority = %#v", decoded)
	}
}

func TestConnectorPushOriginatingAuthorityEnvelopeReadsLegacySessionJSON(
	t *testing.T,
) {
	const legacy = `{"id":"user-1","profile_id":"profile-old","sessionClass":"platform_browser"}`
	var decoded ConnectorPushDurableSnapshot
	if err := decodeConnectorPushOriginatingAuthority(
		legacy,
		&decoded,
	); err != nil {
		t.Fatal(err)
	}
	if decoded.OriginatingCredentialID != "" ||
		decoded.OriginatingUserSession.ID != "user-1" ||
		decoded.OriginatingUserSession.ProfileID != "profile-old" {
		t.Fatalf("legacy originating authority = %#v", decoded)
	}
}
