Skip to content

Commit 1e8d8ef

Browse files
committed
handle no import filter scenario
1 parent 6bf370d commit 1e8d8ef

File tree

2 files changed

+21
-0
lines changed

2 files changed

+21
-0
lines changed

db/import.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -552,6 +552,9 @@ func (db *DatabaseCollectionWithUser) ImportFilterDryRun(ctx context.Context, do
552552
var shouldImport bool
553553
if importFn == "" {
554554
importFilter := db.importFilter()
555+
if importFilter == nil {
556+
return false, base.HTTPErrorf(http.StatusBadRequest, "No import filter specified")
557+
}
555558
output, err := importFilter.EvaluateFunction(ctx, doc, true)
556559
if err != nil {
557560
return false, &base.ImportFilterDryRunError{Err: err}

rest/diagnostic_doc_api_test.go

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1411,6 +1411,24 @@ func TestImportFilterDryRun(t *testing.T) {
14111411
},
14121412
expectedStatus: http.StatusBadRequest,
14131413
},
1414+
{
1415+
name: "no_db_import_filter-no_custom_import_filter-no_doc_body-existing_doc-docid",
1416+
existingDoc: true,
1417+
existingDocID: "no_db_import_filter-no_custom_import_filter-no_doc_body-existing_doc-docid",
1418+
existingDocBody: `{"user":{"num":125}}`,
1419+
expectedOutput: ImportFilterDryRun{
1420+
Error: "Bad Request",
1421+
},
1422+
expectedStatus: http.StatusBadRequest,
1423+
},
1424+
{
1425+
name: "no_db_import_filter-no_custom_import_filter-doc_body-no_existing_doc-no_docid",
1426+
document: map[string]interface{}{"user": map[string]interface{}{"num": 23}},
1427+
expectedOutput: ImportFilterDryRun{
1428+
Error: "Bad Request",
1429+
},
1430+
expectedStatus: http.StatusBadRequest,
1431+
},
14141432
}
14151433

14161434
for _, test := range tests {

0 commit comments

Comments
 (0)