|
485 | 485 | "valid": false
|
486 | 486 | }
|
487 | 487 | ]
|
| 488 | + }, |
| 489 | + { |
| 490 | + "description": "unevaluatedItems depends on adjacent contains", |
| 491 | + "schema": { |
| 492 | + "prefixItems": [true], |
| 493 | + "contains": {"type": "string"}, |
| 494 | + "unevaluatedItems": false |
| 495 | + }, |
| 496 | + "tests": [ |
| 497 | + { |
| 498 | + "description": "second item is evaluated by contains", |
| 499 | + "data": [ 1, "foo" ], |
| 500 | + "valid": true |
| 501 | + }, |
| 502 | + { |
| 503 | + "description": "contains fails, second item is not evaluated", |
| 504 | + "data": [ 1, 2 ], |
| 505 | + "valid": false |
| 506 | + }, |
| 507 | + { |
| 508 | + "description": "contains passes, second item is not evaluated", |
| 509 | + "data": [ 1, 2, "foo" ], |
| 510 | + "valid": false |
| 511 | + } |
| 512 | + ] |
| 513 | + }, |
| 514 | + { |
| 515 | + "description": "unevaluatedItems depends on multiple nested contains", |
| 516 | + "schema": { |
| 517 | + "allOf": [ |
| 518 | + { "contains": { "multipleOf": 2 } }, |
| 519 | + { "contains": { "multipleOf": 3 } } |
| 520 | + ], |
| 521 | + "unevaluatedItems": { "multipleOf": 5 } |
| 522 | + }, |
| 523 | + "tests": [ |
| 524 | + { |
| 525 | + "description": "5 not evaluated, passes unevaluatedItems", |
| 526 | + "data": [ 2, 3, 4, 5, 6 ], |
| 527 | + "valid": true |
| 528 | + }, |
| 529 | + { |
| 530 | + "description": "7 not evaluated, fails unevaluatedItems", |
| 531 | + "data": [ 2, 3, 4, 7, 8 ], |
| 532 | + "valid": false |
| 533 | + } |
| 534 | + ] |
| 535 | + }, |
| 536 | + { |
| 537 | + "description": "unevaluatedItems and contains interact to control item dependency relationship", |
| 538 | + "schema": { |
| 539 | + "if": { |
| 540 | + "contains": {"const": "a"} |
| 541 | + }, |
| 542 | + "then": { |
| 543 | + "if": { |
| 544 | + "contains": {"const": "b"} |
| 545 | + }, |
| 546 | + "then": { |
| 547 | + "if": { |
| 548 | + "contains": {"const": "c"} |
| 549 | + } |
| 550 | + } |
| 551 | + }, |
| 552 | + "unevaluatedItems": false |
| 553 | + }, |
| 554 | + "tests": [ |
| 555 | + { |
| 556 | + "description": "empty array is valid", |
| 557 | + "data": [], |
| 558 | + "valid": true |
| 559 | + }, |
| 560 | + { |
| 561 | + "description": "only a's are valid", |
| 562 | + "data": [ "a", "a" ], |
| 563 | + "valid": true |
| 564 | + }, |
| 565 | + { |
| 566 | + "description": "a's and b's are valid", |
| 567 | + "data": [ "a", "b", "a", "b", "a" ], |
| 568 | + "valid": true |
| 569 | + }, |
| 570 | + { |
| 571 | + "description": "a's, b's and c's are valid", |
| 572 | + "data": [ "c", "a", "c", "c", "b", "a" ], |
| 573 | + "valid": true |
| 574 | + }, |
| 575 | + { |
| 576 | + "description": "only b's are invalid", |
| 577 | + "data": [ "b", "b" ], |
| 578 | + "valid": false |
| 579 | + }, |
| 580 | + { |
| 581 | + "description": "only c's are invalid", |
| 582 | + "data": [ "c", "c" ], |
| 583 | + "valid": false |
| 584 | + }, |
| 585 | + { |
| 586 | + "description": "only b's and c's are invalid", |
| 587 | + "data": [ "c", "b", "c", "b", "c" ], |
| 588 | + "valid": false |
| 589 | + }, |
| 590 | + { |
| 591 | + "description": "only a's and c's are invalid", |
| 592 | + "data": [ "c", "a", "c", "a", "c" ], |
| 593 | + "valid": false |
| 594 | + } |
| 595 | + ] |
488 | 596 | }
|
489 | 597 | ]
|
0 commit comments