|
1 | 1 | /* eslint object-property-newline: 0 */
|
2 | 2 | import "mocha";
|
3 |
| -import { expect } from "chai"; |
4 |
| -import { set, InsertMode } from "../../lib/set"; |
| 3 | +import {expect} from "chai"; |
| 4 | +import {InsertMode, set} from "../../lib/set"; |
5 | 5 |
|
6 | 6 | /*
|
7 | 7 | ??? Syntax
|
@@ -156,6 +156,64 @@ describe("set", () => {
|
156 | 156 | );
|
157 | 157 | expect(result).to.deep.eq({ list: [1, { value: "t" }, 3] });
|
158 | 158 | });
|
| 159 | + |
| 160 | + it("should merge into object nested in single-level array", () => { |
| 161 | + const result = set( |
| 162 | + [{ text: 'A' }, { text: 'B' }], |
| 163 | + "#/1", |
| 164 | + { additionalText: 'C' } |
| 165 | + ); |
| 166 | + expect(result).to.deep.eq([{ text: 'A' }, { text: 'B', additionalText: 'C' } ]); |
| 167 | + }); |
| 168 | + |
| 169 | + it("should replace into object nested in single-level array", () => { |
| 170 | + const result = set( |
| 171 | + [{ text: 'A' }, { text: 'B' }], |
| 172 | + "#/1", |
| 173 | + { additionalText: 'C' }, |
| 174 | + InsertMode.REPLACE_ITEMS |
| 175 | + ); |
| 176 | + expect(result).to.deep.eq([{ text: 'A' }, { additionalText: 'C' } ]) |
| 177 | + }); |
| 178 | + |
| 179 | + it("should insert into object nested in single-level array", () => { |
| 180 | + const result = set( |
| 181 | + [{ text: 'A' }, { text: 'B' }], |
| 182 | + "#/1", |
| 183 | + { additionalText: 'C' }, |
| 184 | + InsertMode.INSERT_ITEMS |
| 185 | + ); |
| 186 | + expect(result).to.deep.eq([{ text: 'A' }, { additionalText: 'C' }, { text: 'B' } ]) |
| 187 | + }); |
| 188 | + |
| 189 | + it("should merge into object nested in multi-level array", () => { |
| 190 | + const result = set( |
| 191 | + [[{ text: 'A' }, { text: 'B' } ]], |
| 192 | + "#/0/1", |
| 193 | + { additionalText: 'C' } |
| 194 | + ); |
| 195 | + expect(result).to.deep.eq([[{ text: 'A' }, { text: 'B', additionalText: 'C' } ]]); |
| 196 | + }); |
| 197 | + |
| 198 | + it("should replace into object nested in multi-level array", () => { |
| 199 | + const result = set( |
| 200 | + [[{ text: 'A' }, { text: 'B' } ]], |
| 201 | + "#/0/1", |
| 202 | + { additionalText: 'C' }, |
| 203 | + InsertMode.REPLACE_ITEMS |
| 204 | + ); |
| 205 | + expect(result).to.deep.eq([[{ text: 'A' }, { additionalText: 'C' } ]]); |
| 206 | + }); |
| 207 | + |
| 208 | + it("should insert into object nested in multi-level array", () => { |
| 209 | + const result = set( |
| 210 | + [[{ text: 'A' }, { text: 'B' } ]], |
| 211 | + "#/0/1", |
| 212 | + { additionalText: 'C' }, |
| 213 | + InsertMode.INSERT_ITEMS |
| 214 | + ); |
| 215 | + expect(result).to.deep.eq([[{ text: 'A' }, { additionalText: 'C' }, { text: 'B' } ]]); |
| 216 | + }); |
159 | 217 | });
|
160 | 218 |
|
161 | 219 | describe("queries", () => {
|
|
0 commit comments