(t *testing.T)
| 696 | } |
| 697 | |
| 698 | func TestSetNode(t *testing.T) { |
| 699 | t.Parallel() |
| 700 | |
| 701 | const jsonText = `{"a":[{"b": 1, "c": 2}], "d": 3}` |
| 702 | |
| 703 | var jsonDocument any |
| 704 | require.NoError(t, json.Unmarshal([]byte(jsonText), &jsonDocument)) |
| 705 | |
| 706 | t.Run("with set node c", func(t *testing.T) { |
| 707 | const in = "/a/0/c" |
| 708 | p, err := New(in) |
| 709 | require.NoError(t, err) |
| 710 | |
| 711 | _, err = p.Set(jsonDocument, 999) |
| 712 | require.NoError(t, err) |
| 713 | |
| 714 | firstNode, ok := jsonDocument.(map[string]any) |
| 715 | require.TrueT(t, ok) |
| 716 | assert.Len(t, firstNode, 2) |
| 717 | |
| 718 | sliceNode, ok := firstNode["a"].([]any) |
| 719 | require.TrueT(t, ok) |
| 720 | assert.Len(t, sliceNode, 1) |
| 721 | |
| 722 | changedNode, ok := sliceNode[0].(map[string]any) |
| 723 | require.TrueT(t, ok) |
| 724 | chNodeVI := changedNode["c"] |
| 725 | |
| 726 | require.IsType(t, 0, chNodeVI) |
| 727 | changedNodeValue, ok := chNodeVI.(int) |
| 728 | require.TrueT(t, ok) |
| 729 | |
| 730 | require.EqualT(t, 999, changedNodeValue) |
| 731 | assert.Len(t, sliceNode, 1) |
| 732 | }) |
| 733 | |
| 734 | t.Run("with set node 0 with map", func(t *testing.T) { |
| 735 | v, err := New("/a/0") |
| 736 | require.NoError(t, err) |
| 737 | |
| 738 | _, err = v.Set(jsonDocument, map[string]any{"b": 3, "c": 8}) |
| 739 | require.NoError(t, err) |
| 740 | |
| 741 | firstNode, ok := jsonDocument.(map[string]any) |
| 742 | require.TrueT(t, ok) |
| 743 | assert.Len(t, firstNode, 2) |
| 744 | |
| 745 | sliceNode, ok := firstNode["a"].([]any) |
| 746 | require.TrueT(t, ok) |
| 747 | assert.Len(t, sliceNode, 1) |
| 748 | |
| 749 | changedNode, ok := sliceNode[0].(map[string]any) |
| 750 | require.TrueT(t, ok) |
| 751 | assert.Equal(t, 3, changedNode["b"]) |
| 752 | assert.Equal(t, 8, changedNode["c"]) |
| 753 | }) |
| 754 | |
| 755 | t.Run("with struct", func(t *testing.T) { |
nothing calls this directly
no test coverage detected
searching dependent graphs…