|
7 | 7 | setCellContent, |
8 | 8 | setFormat, |
9 | 9 | } from "../test_helpers/commands_helpers"; |
| 10 | +import { setGrid, toCellPosition } from "../test_helpers/helpers"; |
10 | 11 |
|
11 | 12 | describe("Data validation evaluation", () => { |
12 | 13 | let model: Model; |
@@ -221,4 +222,33 @@ describe("Data validation evaluation", () => { |
221 | 222 | setFormat(model, "A2", "mm/dd/yyyy"); |
222 | 223 | expect(model.getters.isDataValidationInvalid(A1)).toEqual(false); |
223 | 224 | }); |
| 225 | + |
| 226 | + test("DV evaluation can be based on position-related formulas", () => { |
| 227 | + const sheetId = model.getters.getActiveSheetId(); |
| 228 | + //prettier-ignore |
| 229 | + setGrid(model, { |
| 230 | + A1: "1", A2: "5", A3: "3", A4: "4", |
| 231 | + B3: "3", B4: "2", B5: "4", B6: "6", |
| 232 | + }); |
| 233 | + |
| 234 | + addDataValidation(model, "A1:A4,B3:B6", "id", { type: "isEqual", values: ["=ROW()"] }); |
| 235 | + expect(model.getters.isDataValidationInvalid(toCellPosition(sheetId, "A1"))).toEqual(false); |
| 236 | + expect(model.getters.isDataValidationInvalid(toCellPosition(sheetId, "A2"))).toEqual(true); |
| 237 | + expect(model.getters.isDataValidationInvalid(toCellPosition(sheetId, "A3"))).toEqual(false); |
| 238 | + expect(model.getters.isDataValidationInvalid(toCellPosition(sheetId, "A4"))).toEqual(false); |
| 239 | + expect(model.getters.isDataValidationInvalid(toCellPosition(sheetId, "B3"))).toEqual(false); |
| 240 | + expect(model.getters.isDataValidationInvalid(toCellPosition(sheetId, "B4"))).toEqual(true); |
| 241 | + expect(model.getters.isDataValidationInvalid(toCellPosition(sheetId, "B5"))).toEqual(true); |
| 242 | + expect(model.getters.isDataValidationInvalid(toCellPosition(sheetId, "B6"))).toEqual(false); |
| 243 | + |
| 244 | + addDataValidation(model, "A1:B6", "id", { type: "isEqual", values: ["=ROW()"] }); |
| 245 | + expect(model.getters.isDataValidationInvalid(toCellPosition(sheetId, "A1"))).toEqual(false); |
| 246 | + expect(model.getters.isDataValidationInvalid(toCellPosition(sheetId, "A2"))).toEqual(true); |
| 247 | + expect(model.getters.isDataValidationInvalid(toCellPosition(sheetId, "A3"))).toEqual(false); |
| 248 | + expect(model.getters.isDataValidationInvalid(toCellPosition(sheetId, "A4"))).toEqual(false); |
| 249 | + expect(model.getters.isDataValidationInvalid(toCellPosition(sheetId, "B3"))).toEqual(false); |
| 250 | + expect(model.getters.isDataValidationInvalid(toCellPosition(sheetId, "B4"))).toEqual(true); |
| 251 | + expect(model.getters.isDataValidationInvalid(toCellPosition(sheetId, "B5"))).toEqual(true); |
| 252 | + expect(model.getters.isDataValidationInvalid(toCellPosition(sheetId, "B6"))).toEqual(false); |
| 253 | + }); |
224 | 254 | }); |
0 commit comments