(t *testing.T)
| 503 | } |
| 504 | |
| 505 | func TestFieldsListJSON(t *testing.T) { |
| 506 | scenarios := []struct { |
| 507 | name string |
| 508 | data string |
| 509 | expectError bool |
| 510 | expectJSON string |
| 511 | }{ |
| 512 | {"empty string", "", true, "[]"}, |
| 513 | {"invalid string", "invalid", true, "[]"}, |
| 514 | {"empty string array", "[]", false, "[]"}, |
| 515 | {"item with no field type", `[{}]`, true, "[]"}, |
| 516 | { |
| 517 | "unknown field type", |
| 518 | `[{"id":"123","name":"test1","type":"unknown"},{"id":"456","name":"test2","type":"bool"}]`, |
| 519 | true, |
| 520 | `[]`, |
| 521 | }, |
| 522 | { |
| 523 | "only the minimum field options", |
| 524 | `[{"id":"123","name":"test1","type":"text","required":true},{"id":"456","name":"test2","type":"bool"}]`, |
| 525 | false, |
| 526 | `[{"autogeneratePattern":"","help":"","hidden":false,"id":"123","max":0,"min":0,"name":"test1","pattern":"","presentable":false,"primaryKey":false,"required":true,"system":false,"type":"text"},{"help":"","hidden":false,"id":"456","name":"test2","presentable":false,"required":false,"system":false,"type":"bool"}]`, |
| 527 | }, |
| 528 | { |
| 529 | "all field options", |
| 530 | `[{"autogeneratePattern":"","help":"abc","hidden":true,"id":"123","max":12,"min":0,"name":"test1","pattern":"","presentable":true,"primaryKey":false,"required":true,"system":false,"type":"text"},{"help":"def","hidden":false,"id":"456","name":"test2","presentable":false,"required":false,"system":true,"type":"bool"}]`, |
| 531 | false, |
| 532 | `[{"autogeneratePattern":"","help":"abc","hidden":true,"id":"123","max":12,"min":0,"name":"test1","pattern":"","presentable":true,"primaryKey":false,"required":true,"system":false,"type":"text"},{"help":"def","hidden":false,"id":"456","name":"test2","presentable":false,"required":false,"system":true,"type":"bool"}]`, |
| 533 | }, |
| 534 | } |
| 535 | |
| 536 | for _, s := range scenarios { |
| 537 | t.Run(s.name, func(t *testing.T) { |
| 538 | testFieldsList := core.FieldsList{} |
| 539 | |
| 540 | err := testFieldsList.UnmarshalJSON([]byte(s.data)) |
| 541 | |
| 542 | hasErr := err != nil |
| 543 | if hasErr != s.expectError { |
| 544 | t.Fatalf("Expected hasErr %v, got %v (%v)", s.expectError, hasErr, err) |
| 545 | } |
| 546 | |
| 547 | raw, err := testFieldsList.MarshalJSON() |
| 548 | if err != nil { |
| 549 | t.Fatal(err) |
| 550 | } |
| 551 | |
| 552 | str := string(raw) |
| 553 | if str != s.expectJSON { |
| 554 | t.Fatalf("Expected\n%v\ngot\n%v", s.expectJSON, str) |
| 555 | } |
| 556 | }) |
| 557 | } |
| 558 | } |
nothing calls this directly
no test coverage detected
searching dependent graphs…