Ctrl K
ComunidadGuías…

internal/repository/asset_mapping_postgres_test.go

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
// Integration tests for updates.asset_mapping: the JSONB round trip and the
// NULL a pre-CAS row reads back as. Same TEST_DATABASE_URL gating as the
// rollout store tests.
package repository_test

import (
	"context"
	"testing"
	"xprem/internal/types"

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

func TestUpdateAssetMappingRoundTripPostgres(t *testing.T) {
	fixture := newRolloutFixture(t)
	ctx := context.Background()

	created, err := fixture.updates.CreateUpdate(ctx, fixture.appId, 100, rolloutTestDefaultBranch, rolloutTestRuntime, "ios", "abc123", "", nil)
	require.NoError(t, err)

	// A row nobody stored a mapping on reads back nil, which is what tells the
	// publish path to fall back instead of blocking.
	stored, err := fixture.updates.GetUpdateAssetMapping(ctx, *created)
	require.NoError(t, err)
	assert.Nil(t, stored)

	mapping := &types.UpdateAssetMapping{
		LaunchAsset: types.ShapedAsset{Hash: "launch-hash", Key: "launch-key", FileExtension: ".bundle", ContentType: "application/javascript"},
		Assets:      []types.ShapedAsset{{Hash: "asset-hash", Key: "asset-key", FileExtension: ".png", ContentType: "image/png"}},
	}
	require.NoError(t, fixture.updates.StoreUpdateAssetMapping(ctx, *created, mapping))

	stored, err = fixture.updates.GetUpdateAssetMapping(ctx, *created)
	require.NoError(t, err)
	require.NotNil(t, stored)
	assert.Equal(t, *mapping, *stored)
}

func TestGetUpdateAssetMappingUnknownUpdatePostgres(t *testing.T) {
	fixture := newRolloutFixture(t)

	stored, err := fixture.updates.GetUpdateAssetMapping(context.Background(), types.Update{
		AppId:    fixture.appId,
		Branch:   rolloutTestDefaultBranch,
		UpdateId: "999999",
	})
	require.NoError(t, err)
	assert.Nil(t, stored)
}