mirror of
https://github.com/datarhei/core.git
synced 2025-10-04 15:42:57 +08:00

If the config on the disk doesn't have all fields, then the missing fields are now populated with their defaults.
51 lines
1.0 KiB
Go
51 lines
1.0 KiB
Go
package store
|
|
|
|
import (
|
|
"encoding/json"
|
|
"os"
|
|
"testing"
|
|
"time"
|
|
|
|
"github.com/datarhei/core/v16/config"
|
|
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestMigrationV1ToV3(t *testing.T) {
|
|
jsondatav1, err := os.ReadFile("./fixtures/config_v1.json")
|
|
require.NoError(t, err)
|
|
|
|
jsondatav3, err := os.ReadFile("./fixtures/config_v1_v3.json")
|
|
require.NoError(t, err)
|
|
|
|
datav3 := config.New()
|
|
json.Unmarshal(jsondatav3, datav3)
|
|
|
|
data, err := migrate(jsondatav1)
|
|
require.NoError(t, err)
|
|
|
|
datav3.Data.CreatedAt = time.Time{}
|
|
data.CreatedAt = time.Time{}
|
|
|
|
require.Equal(t, datav3.Data, *data)
|
|
}
|
|
|
|
func TestMigrationV2ToV3(t *testing.T) {
|
|
jsondatav2, err := os.ReadFile("./fixtures/config_v2.json")
|
|
require.NoError(t, err)
|
|
|
|
jsondatav3, err := os.ReadFile("./fixtures/config_v2_v3.json")
|
|
require.NoError(t, err)
|
|
|
|
datav3 := config.New()
|
|
json.Unmarshal(jsondatav3, datav3)
|
|
|
|
data, err := migrate(jsondatav2)
|
|
require.NoError(t, err)
|
|
|
|
datav3.Data.CreatedAt = time.Time{}
|
|
data.CreatedAt = time.Time{}
|
|
|
|
require.Equal(t, datav3.Data, *data)
|
|
}
|