Skip to content

Commit

Permalink
feat(server): support float fields (#1263)
Browse files Browse the repository at this point in the history
* imp

* imp

* imp

* imp

* fix test cases
  • Loading branch information
yk-eukarya authored Oct 23, 2024
1 parent c83a814 commit fb598bc
Show file tree
Hide file tree
Showing 13 changed files with 493 additions and 52 deletions.
13 changes: 13 additions & 0 deletions server/e2e/gql_field_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -134,6 +134,7 @@ type fIds struct {
boolFId string
selectFId string
integerFId string
numberFId string
urlFId string
dateFId string
tagFID string
Expand Down Expand Up @@ -192,6 +193,16 @@ func createFieldOfEachType(t *testing.T, e *httpexpect.Expect, mId string) fIds
},
})

numberFId, _ := createField(e, mId, "number", "number", "number",
false, false, false, false, "Number",
map[string]any{
"number": map[string]any{
"defaultValue": nil,
"min": nil,
"max": nil,
},
})

urlFId, _ := createField(e, mId, "url", "url", "url",
false, false, false, false, "URL",
map[string]any{
Expand Down Expand Up @@ -260,6 +271,7 @@ func createFieldOfEachType(t *testing.T, e *httpexpect.Expect, mId string) fIds
boolFId,
selectFId,
integerFId,
numberFId,
urlFId,
dateFId,
tagFId,
Expand All @@ -276,6 +288,7 @@ func createFieldOfEachType(t *testing.T, e *httpexpect.Expect, mId string) fIds
boolFId: boolFId,
selectFId: selectFId,
integerFId: integerFId,
numberFId: numberFId,
urlFId: urlFId,
dateFId: dateFId,
tagFID: tagFId,
Expand Down
6 changes: 3 additions & 3 deletions server/e2e/gql_item_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -412,7 +412,7 @@ func TestClearItemValues(t *testing.T) {
})
fields := r1.Path("$.data.createItem.item.fields[:].value").Raw().([]any)
assert.Equal(t, []any{
"Text", "TextArea", "MarkdownText", aid.String(), true, "s1", float64(1), "https://www.1s.com", "2023-01-01T00:00:00Z", tagIds[0], true, "{\n\t\"type\": \"Point\",\n\t\"coordinates\": [102.0, 0.5]\n}", "{\n\t\"type\": \"Point\",\n\t\"coordinates\": [102.0, 0.5]\n}",
"Text", "TextArea", "MarkdownText", aid.String(), true, "s1", float64(1), nil, "https://www.1s.com", "2023-01-01T00:00:00Z", tagIds[0], true, "{\n\t\"type\": \"Point\",\n\t\"coordinates\": [102.0, 0.5]\n}", "{\n\t\"type\": \"Point\",\n\t\"coordinates\": [102.0, 0.5]\n}",
}, fields)
i1ver, _ := getItem(e, iid)
_, r2 := updateItem(e, iid, i1ver, []map[string]any{
Expand All @@ -432,7 +432,7 @@ func TestClearItemValues(t *testing.T) {
})
fields = r2.Path("$.data.updateItem.item.fields[:].value").Raw().([]any)
assert.Equal(t, []any{
nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
}, fields)

iid2, _ := createItem(e, mId, sId, nil, []map[string]any{
Expand All @@ -453,7 +453,7 @@ func TestClearItemValues(t *testing.T) {
_, r3 := getItem(e, iid2)
fields2 := r3.Path("$.data.node.fields[:].value").Raw().([]any)
assert.Equal(t, []any{
nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
}, fields2)

}
Expand Down
6 changes: 3 additions & 3 deletions server/e2e/integration_item_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -1450,7 +1450,7 @@ func TestIntegrationModelImportJSONWithJsonInput(t *testing.T) {
mId, _ := createModel(e, pId, "test", "test", "test-1")
createFieldOfEachType(t, e, mId)

jsonContent := `[{"text": "test1", "bool": true, "integer": 1},{"text": "test2", "bool": false, "integer": 2},{"text": "test3", "bool": null, "integer": null}]`
jsonContent := `[{"text": "test1", "bool": true, "number": 1.1},{"text": "test2", "bool": false, "number": 2},{"text": "test3", "bool": null, "number": null}]`
aId := UploadAsset(e, pId, "./test1.json", jsonContent).Object().Value("id").String().Raw()
res := IntegrationModelImportJSON(e, mId, aId, "json", "insert", false, nil)
res.Object().IsEqual(map[string]any{
Expand Down Expand Up @@ -1573,7 +1573,7 @@ func TestIntegrationItemsAsCSV(t *testing.T) {
})

res := IntegrationItemsAsCSV(e, mId, 1, 10, i1Id, "", "", nil)
expected := fmt.Sprintf("id,location_lat,location_lng,text,textArea,markdown,asset,bool,select,integer,url,date,tag,checkbox\n%s,139.28179282584915,36.58570985749664,test1,,,,,,,,,,\n", i1Id)
expected := fmt.Sprintf("id,location_lat,location_lng,text,textArea,markdown,asset,bool,select,integer,number,url,date,tag,checkbox\n%s,139.28179282584915,36.58570985749664,test1,,,,,,,,,,,\n", i1Id)
res.IsEqual(expected)
}

Expand All @@ -1593,7 +1593,7 @@ func TestIntegrationItemsWithProjectAsCSV(t *testing.T) {
})

res := IntegrationItemsWithProjectAsCSV(e, pId, mId, 1, 10, i1Id, "", "", nil)
expected := fmt.Sprintf("id,location_lat,location_lng,text,textArea,markdown,asset,bool,select,integer,url,date,tag,checkbox\n%s,139.28179282584915,36.58570985749664,test1,,,,,,30,,,,\n", i1Id)
expected := fmt.Sprintf("id,location_lat,location_lng,text,textArea,markdown,asset,bool,select,integer,number,url,date,tag,checkbox\n%s,139.28179282584915,36.58570985749664,test1,,,,,,30,,,,,\n", i1Id)
res.IsEqual(expected)
}

Expand Down
72 changes: 66 additions & 6 deletions server/e2e/integration_schema_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -177,6 +177,52 @@ func TestIntegrationFieldCreateAPI(t *testing.T) {

res.ContainsKey("id")

res = e.GET("/api/models/{modelId}", mId1).
WithHeader("authorization", "Bearer "+secret).
Expect().
Status(http.StatusOK).
JSON().
Object()

res.ContainsSubset(map[string]any{
"name": "m1",
"id": mId1.String(),
"description": "m1 desc",
"public": true,
"key": ikey1.String(),
"projectId": pid,
"schemaId": sid1,
})

res.Value("createdAt").NotNull()
res.Value("updatedAt").NotNull()
res.Value("lastModified").NotNull()
resf := res.Value("schema").Object().Value("fields").Array()
resf.Length().IsEqual(3)
resf.Value(2).Object().ContainsSubset(map[string]any{
// "id": "", // generated
"key": "テスト",
"type": "text",
"required": false,
})
// endregion

//region bool
res = e.POST(endpoint, sid1).
WithHeader("authorization", "Bearer "+secret).
WithJSON(map[string]interface{}{
"key": "fKey1",
"type": "bool",
"multiple": false,
"required": false,
}).
Expect().
Status(http.StatusOK).
JSON().
Object()

res.ContainsKey("id")

res = e.GET("/api/models/{modelId}", mId1).
WithHeader("authorization", "Bearer "+secret).
Expect().
Expand All @@ -192,18 +238,25 @@ func TestIntegrationFieldCreateAPI(t *testing.T) {
HasValue("projectId", pid).
HasValue("schemaId", sid1)

res.Value("schema").Object().Value("fields").Array().Length().IsEqual(3)
res.Value("createdAt").NotNull()
res.Value("updatedAt").NotNull()
res.Value("lastModified").NotNull()
resf = res.Value("schema").Object().Value("fields").Array()
resf.Length().IsEqual(4)
resf.Value(3).Object().ContainsSubset(map[string]any{
// "id": "", // generated
"key": "fKey1",
"type": "bool",
"required": false,
})
// endregion

//region bool
//region number
res = e.POST(endpoint, sid1).
WithHeader("authorization", "Bearer "+secret).
WithJSON(map[string]interface{}{
"key": "fKey1",
"type": "bool",
"key": "fKey2",
"type": "number",
"multiple": false,
"required": false,
}).
Expand All @@ -229,17 +282,24 @@ func TestIntegrationFieldCreateAPI(t *testing.T) {
HasValue("projectId", pid).
HasValue("schemaId", sid1)

res.Value("schema").Object().Value("fields").Array().Length().IsEqual(4)
res.Value("createdAt").NotNull()
res.Value("updatedAt").NotNull()
res.Value("lastModified").NotNull()
resf = res.Value("schema").Object().Value("fields").Array()
resf.Length().IsEqual(5)
resf.Value(4).Object().ContainsSubset(map[string]any{
// "id": "", // generated
"key": "fKey2",
"type": "number",
"required": false,
})
// endregion

// region GeoObject
res = e.POST(endpoint, sid1).
WithHeader("authorization", "Bearer "+secret).
WithJSON(map[string]interface{}{
"key": "fKey2",
"key": "fKey3",
"type": "geometryObject",
"multiple": false,
"required": false,
Expand Down
Loading

0 comments on commit fb598bc

Please sign in to comment.