added test to test schema field persistence after import
This commit is contained in:
parent
35bd395e55
commit
c5091898ae
|
@ -262,6 +262,7 @@ func TestImportCollections(t *testing.T) {
|
||||||
beforeRecordsSync func(txDao *daos.Dao, mappedImported, mappedExisting map[string]*models.Collection) error
|
beforeRecordsSync func(txDao *daos.Dao, mappedImported, mappedExisting map[string]*models.Collection) error
|
||||||
expectError bool
|
expectError bool
|
||||||
expectCollectionsCount int
|
expectCollectionsCount int
|
||||||
|
afterTestFunc func(testApp *tests.TestApp, resultCollections []*models.Collection)
|
||||||
}{
|
}{
|
||||||
{
|
{
|
||||||
name: "empty collections",
|
name: "empty collections",
|
||||||
|
@ -422,6 +423,111 @@ func TestImportCollections(t *testing.T) {
|
||||||
expectError: false,
|
expectError: false,
|
||||||
expectCollectionsCount: 3,
|
expectCollectionsCount: 3,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
name: "test with deleteMissing: false",
|
||||||
|
jsonData: `[
|
||||||
|
{
|
||||||
|
"id":"abe78266-fd4d-4aea-962d-8c0138ac522b",
|
||||||
|
"name":"profiles",
|
||||||
|
"system":true,
|
||||||
|
"listRule":"userId = @request.user.id",
|
||||||
|
"viewRule":"created > 'test_change'",
|
||||||
|
"createRule":"userId = @request.user.id",
|
||||||
|
"updateRule":"userId = @request.user.id",
|
||||||
|
"deleteRule":"userId = @request.user.id",
|
||||||
|
"schema":[
|
||||||
|
{
|
||||||
|
"id":"69ycbg3q",
|
||||||
|
"name":"rel",
|
||||||
|
"type":"relation",
|
||||||
|
"system":false,
|
||||||
|
"required":false,
|
||||||
|
"unique":false,
|
||||||
|
"options":{
|
||||||
|
"maxSelect":2,
|
||||||
|
"collectionId":"abe78266-fd4d-4aea-962d-8c0138ac522b",
|
||||||
|
"cascadeDelete":true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id":"abcd_import",
|
||||||
|
"name":"new_field",
|
||||||
|
"type":"bool"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id":"3f2888f8-075d-49fe-9d09-ea7e951000dc",
|
||||||
|
"name":"demo",
|
||||||
|
"schema":[
|
||||||
|
{
|
||||||
|
"id":"_2hlxbmp",
|
||||||
|
"name":"title",
|
||||||
|
"type":"text",
|
||||||
|
"system":false,
|
||||||
|
"required":true,
|
||||||
|
"unique":false,
|
||||||
|
"options":{
|
||||||
|
"min":3,
|
||||||
|
"max":null,
|
||||||
|
"pattern":""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id":"_2hlxbmp",
|
||||||
|
"name":"field_with_duplicate_id",
|
||||||
|
"type":"text",
|
||||||
|
"system":false,
|
||||||
|
"required":true,
|
||||||
|
"unique":false,
|
||||||
|
"options":{
|
||||||
|
"min":3,
|
||||||
|
"max":null,
|
||||||
|
"pattern":""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id":"abcd_import",
|
||||||
|
"name":"new_field",
|
||||||
|
"type":"text"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "new_import",
|
||||||
|
"schema": [
|
||||||
|
{
|
||||||
|
"id":"abcd_import",
|
||||||
|
"name":"active",
|
||||||
|
"type":"bool"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]`,
|
||||||
|
deleteMissing: false,
|
||||||
|
expectError: false,
|
||||||
|
expectCollectionsCount: 6,
|
||||||
|
afterTestFunc: func(testApp *tests.TestApp, resultCollections []*models.Collection) {
|
||||||
|
expectedCollectionFields := map[string]int{
|
||||||
|
"profiles": 6,
|
||||||
|
"demo": 3,
|
||||||
|
"demo2": 14,
|
||||||
|
"demo3": 1,
|
||||||
|
"demo4": 6,
|
||||||
|
"new_import": 1,
|
||||||
|
}
|
||||||
|
for name, expectedCount := range expectedCollectionFields {
|
||||||
|
collection, err := testApp.Dao().FindCollectionByNameOrId(name)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if totalFields := len(collection.Schema.Fields()); totalFields != expectedCount {
|
||||||
|
t.Errorf("Expected %d %q fields, got %d", expectedCount, collection.Name, totalFields)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, scenario := range scenarios {
|
for _, scenario := range scenarios {
|
||||||
|
@ -452,5 +558,9 @@ func TestImportCollections(t *testing.T) {
|
||||||
if len(collections) != scenario.expectCollectionsCount {
|
if len(collections) != scenario.expectCollectionsCount {
|
||||||
t.Errorf("[%s] Expected %d collections, got %d", scenario.name, scenario.expectCollectionsCount, len(collections))
|
t.Errorf("[%s] Expected %d collections, got %d", scenario.name, scenario.expectCollectionsCount, len(collections))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if scenario.afterTestFunc != nil {
|
||||||
|
scenario.afterTestFunc(testApp, collections)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue