cuelang.org/go@v0.13.0/encoding/jsonschema/testdata/external/tests/draft2020-12/unevaluatedProperties.json (about) 1 [ 2 { 3 "description": "unevaluatedProperties true", 4 "schema": { 5 "$schema": "https://json-schema.org/draft/2020-12/schema", 6 "type": "object", 7 "unevaluatedProperties": true 8 }, 9 "skip": { 10 "v2": "extract error: keyword \"unevaluatedProperties\" not yet implemented", 11 "v3": "extract error: keyword \"unevaluatedProperties\" not yet implemented" 12 }, 13 "tests": [ 14 { 15 "description": "with no unevaluated properties", 16 "data": {}, 17 "valid": true, 18 "skip": { 19 "v2": "could not compile schema", 20 "v3": "could not compile schema" 21 } 22 }, 23 { 24 "description": "with unevaluated properties", 25 "data": { 26 "foo": "foo" 27 }, 28 "valid": true, 29 "skip": { 30 "v2": "could not compile schema", 31 "v3": "could not compile schema" 32 } 33 } 34 ] 35 }, 36 { 37 "description": "unevaluatedProperties schema", 38 "schema": { 39 "$schema": "https://json-schema.org/draft/2020-12/schema", 40 "type": "object", 41 "unevaluatedProperties": { 42 "type": "string", 43 "minLength": 3 44 } 45 }, 46 "skip": { 47 "v2": "extract error: keyword \"unevaluatedProperties\" not yet implemented", 48 "v3": "extract error: keyword \"unevaluatedProperties\" not yet implemented" 49 }, 50 "tests": [ 51 { 52 "description": "with no unevaluated properties", 53 "data": {}, 54 "valid": true, 55 "skip": { 56 "v2": "could not compile schema", 57 "v3": "could not compile schema" 58 } 59 }, 60 { 61 "description": "with valid unevaluated properties", 62 "data": { 63 "foo": "foo" 64 }, 65 "valid": true, 66 "skip": { 67 "v2": "could not compile schema", 68 "v3": "could not compile schema" 69 } 70 }, 71 { 72 "description": "with invalid unevaluated properties", 73 "data": { 74 "foo": "fo" 75 }, 76 "valid": false, 77 "skip": { 78 "v2": "could not compile schema", 79 "v3": "could not compile schema" 80 } 81 } 82 ] 83 }, 84 { 85 "description": "unevaluatedProperties false", 86 "schema": { 87 "$schema": "https://json-schema.org/draft/2020-12/schema", 88 "type": "object", 89 "unevaluatedProperties": false 90 }, 91 "skip": { 92 "v2": "extract error: keyword \"unevaluatedProperties\" not yet implemented", 93 "v3": "extract error: keyword \"unevaluatedProperties\" not yet implemented" 94 }, 95 "tests": [ 96 { 97 "description": "with no unevaluated properties", 98 "data": {}, 99 "valid": true, 100 "skip": { 101 "v2": "could not compile schema", 102 "v3": "could not compile schema" 103 } 104 }, 105 { 106 "description": "with unevaluated properties", 107 "data": { 108 "foo": "foo" 109 }, 110 "valid": false, 111 "skip": { 112 "v2": "could not compile schema", 113 "v3": "could not compile schema" 114 } 115 } 116 ] 117 }, 118 { 119 "description": "unevaluatedProperties with adjacent properties", 120 "schema": { 121 "$schema": "https://json-schema.org/draft/2020-12/schema", 122 "type": "object", 123 "properties": { 124 "foo": { 125 "type": "string" 126 } 127 }, 128 "unevaluatedProperties": false 129 }, 130 "skip": { 131 "v2": "extract error: keyword \"unevaluatedProperties\" not yet implemented", 132 "v3": "extract error: keyword \"unevaluatedProperties\" not yet implemented" 133 }, 134 "tests": [ 135 { 136 "description": "with no unevaluated properties", 137 "data": { 138 "foo": "foo" 139 }, 140 "valid": true, 141 "skip": { 142 "v2": "could not compile schema", 143 "v3": "could not compile schema" 144 } 145 }, 146 { 147 "description": "with unevaluated properties", 148 "data": { 149 "foo": "foo", 150 "bar": "bar" 151 }, 152 "valid": false, 153 "skip": { 154 "v2": "could not compile schema", 155 "v3": "could not compile schema" 156 } 157 } 158 ] 159 }, 160 { 161 "description": "unevaluatedProperties with adjacent patternProperties", 162 "schema": { 163 "$schema": "https://json-schema.org/draft/2020-12/schema", 164 "type": "object", 165 "patternProperties": { 166 "^foo": { 167 "type": "string" 168 } 169 }, 170 "unevaluatedProperties": false 171 }, 172 "skip": { 173 "v2": "extract error: keyword \"unevaluatedProperties\" not yet implemented", 174 "v3": "extract error: keyword \"unevaluatedProperties\" not yet implemented" 175 }, 176 "tests": [ 177 { 178 "description": "with no unevaluated properties", 179 "data": { 180 "foo": "foo" 181 }, 182 "valid": true, 183 "skip": { 184 "v2": "could not compile schema", 185 "v3": "could not compile schema" 186 } 187 }, 188 { 189 "description": "with unevaluated properties", 190 "data": { 191 "foo": "foo", 192 "bar": "bar" 193 }, 194 "valid": false, 195 "skip": { 196 "v2": "could not compile schema", 197 "v3": "could not compile schema" 198 } 199 } 200 ] 201 }, 202 { 203 "description": "unevaluatedProperties with adjacent additionalProperties", 204 "schema": { 205 "$schema": "https://json-schema.org/draft/2020-12/schema", 206 "type": "object", 207 "properties": { 208 "foo": { 209 "type": "string" 210 } 211 }, 212 "additionalProperties": true, 213 "unevaluatedProperties": false 214 }, 215 "skip": { 216 "v2": "extract error: keyword \"unevaluatedProperties\" not yet implemented", 217 "v3": "extract error: keyword \"unevaluatedProperties\" not yet implemented" 218 }, 219 "tests": [ 220 { 221 "description": "with no additional properties", 222 "data": { 223 "foo": "foo" 224 }, 225 "valid": true, 226 "skip": { 227 "v2": "could not compile schema", 228 "v3": "could not compile schema" 229 } 230 }, 231 { 232 "description": "with additional properties", 233 "data": { 234 "foo": "foo", 235 "bar": "bar" 236 }, 237 "valid": true, 238 "skip": { 239 "v2": "could not compile schema", 240 "v3": "could not compile schema" 241 } 242 } 243 ] 244 }, 245 { 246 "description": "unevaluatedProperties with nested properties", 247 "schema": { 248 "$schema": "https://json-schema.org/draft/2020-12/schema", 249 "type": "object", 250 "properties": { 251 "foo": { 252 "type": "string" 253 } 254 }, 255 "allOf": [ 256 { 257 "properties": { 258 "bar": { 259 "type": "string" 260 } 261 } 262 } 263 ], 264 "unevaluatedProperties": false 265 }, 266 "skip": { 267 "v2": "extract error: keyword \"unevaluatedProperties\" not yet implemented", 268 "v3": "extract error: keyword \"unevaluatedProperties\" not yet implemented" 269 }, 270 "tests": [ 271 { 272 "description": "with no additional properties", 273 "data": { 274 "foo": "foo", 275 "bar": "bar" 276 }, 277 "valid": true, 278 "skip": { 279 "v2": "could not compile schema", 280 "v3": "could not compile schema" 281 } 282 }, 283 { 284 "description": "with additional properties", 285 "data": { 286 "foo": "foo", 287 "bar": "bar", 288 "baz": "baz" 289 }, 290 "valid": false, 291 "skip": { 292 "v2": "could not compile schema", 293 "v3": "could not compile schema" 294 } 295 } 296 ] 297 }, 298 { 299 "description": "unevaluatedProperties with nested patternProperties", 300 "schema": { 301 "$schema": "https://json-schema.org/draft/2020-12/schema", 302 "type": "object", 303 "properties": { 304 "foo": { 305 "type": "string" 306 } 307 }, 308 "allOf": [ 309 { 310 "patternProperties": { 311 "^bar": { 312 "type": "string" 313 } 314 } 315 } 316 ], 317 "unevaluatedProperties": false 318 }, 319 "skip": { 320 "v2": "extract error: keyword \"unevaluatedProperties\" not yet implemented", 321 "v3": "extract error: keyword \"unevaluatedProperties\" not yet implemented" 322 }, 323 "tests": [ 324 { 325 "description": "with no additional properties", 326 "data": { 327 "foo": "foo", 328 "bar": "bar" 329 }, 330 "valid": true, 331 "skip": { 332 "v2": "could not compile schema", 333 "v3": "could not compile schema" 334 } 335 }, 336 { 337 "description": "with additional properties", 338 "data": { 339 "foo": "foo", 340 "bar": "bar", 341 "baz": "baz" 342 }, 343 "valid": false, 344 "skip": { 345 "v2": "could not compile schema", 346 "v3": "could not compile schema" 347 } 348 } 349 ] 350 }, 351 { 352 "description": "unevaluatedProperties with nested additionalProperties", 353 "schema": { 354 "$schema": "https://json-schema.org/draft/2020-12/schema", 355 "type": "object", 356 "properties": { 357 "foo": { 358 "type": "string" 359 } 360 }, 361 "allOf": [ 362 { 363 "additionalProperties": true 364 } 365 ], 366 "unevaluatedProperties": false 367 }, 368 "skip": { 369 "v2": "extract error: keyword \"unevaluatedProperties\" not yet implemented", 370 "v3": "extract error: keyword \"unevaluatedProperties\" not yet implemented" 371 }, 372 "tests": [ 373 { 374 "description": "with no additional properties", 375 "data": { 376 "foo": "foo" 377 }, 378 "valid": true, 379 "skip": { 380 "v2": "could not compile schema", 381 "v3": "could not compile schema" 382 } 383 }, 384 { 385 "description": "with additional properties", 386 "data": { 387 "foo": "foo", 388 "bar": "bar" 389 }, 390 "valid": true, 391 "skip": { 392 "v2": "could not compile schema", 393 "v3": "could not compile schema" 394 } 395 } 396 ] 397 }, 398 { 399 "description": "unevaluatedProperties with nested unevaluatedProperties", 400 "schema": { 401 "$schema": "https://json-schema.org/draft/2020-12/schema", 402 "type": "object", 403 "properties": { 404 "foo": { 405 "type": "string" 406 } 407 }, 408 "allOf": [ 409 { 410 "unevaluatedProperties": true 411 } 412 ], 413 "unevaluatedProperties": { 414 "type": "string", 415 "maxLength": 2 416 } 417 }, 418 "skip": { 419 "v2": "extract error: keyword \"unevaluatedProperties\" not yet implemented (and 1 more errors)", 420 "v3": "extract error: keyword \"unevaluatedProperties\" not yet implemented (and 1 more errors)" 421 }, 422 "tests": [ 423 { 424 "description": "with no nested unevaluated properties", 425 "data": { 426 "foo": "foo" 427 }, 428 "valid": true, 429 "skip": { 430 "v2": "could not compile schema", 431 "v3": "could not compile schema" 432 } 433 }, 434 { 435 "description": "with nested unevaluated properties", 436 "data": { 437 "foo": "foo", 438 "bar": "bar" 439 }, 440 "valid": true, 441 "skip": { 442 "v2": "could not compile schema", 443 "v3": "could not compile schema" 444 } 445 } 446 ] 447 }, 448 { 449 "description": "unevaluatedProperties with anyOf", 450 "schema": { 451 "$schema": "https://json-schema.org/draft/2020-12/schema", 452 "type": "object", 453 "properties": { 454 "foo": { 455 "type": "string" 456 } 457 }, 458 "anyOf": [ 459 { 460 "properties": { 461 "bar": { 462 "const": "bar" 463 } 464 }, 465 "required": [ 466 "bar" 467 ] 468 }, 469 { 470 "properties": { 471 "baz": { 472 "const": "baz" 473 } 474 }, 475 "required": [ 476 "baz" 477 ] 478 }, 479 { 480 "properties": { 481 "quux": { 482 "const": "quux" 483 } 484 }, 485 "required": [ 486 "quux" 487 ] 488 } 489 ], 490 "unevaluatedProperties": false 491 }, 492 "skip": { 493 "v2": "extract error: keyword \"unevaluatedProperties\" not yet implemented", 494 "v3": "extract error: keyword \"unevaluatedProperties\" not yet implemented" 495 }, 496 "tests": [ 497 { 498 "description": "when one matches and has no unevaluated properties", 499 "data": { 500 "foo": "foo", 501 "bar": "bar" 502 }, 503 "valid": true, 504 "skip": { 505 "v2": "could not compile schema", 506 "v3": "could not compile schema" 507 } 508 }, 509 { 510 "description": "when one matches and has unevaluated properties", 511 "data": { 512 "foo": "foo", 513 "bar": "bar", 514 "baz": "not-baz" 515 }, 516 "valid": false, 517 "skip": { 518 "v2": "could not compile schema", 519 "v3": "could not compile schema" 520 } 521 }, 522 { 523 "description": "when two match and has no unevaluated properties", 524 "data": { 525 "foo": "foo", 526 "bar": "bar", 527 "baz": "baz" 528 }, 529 "valid": true, 530 "skip": { 531 "v2": "could not compile schema", 532 "v3": "could not compile schema" 533 } 534 }, 535 { 536 "description": "when two match and has unevaluated properties", 537 "data": { 538 "foo": "foo", 539 "bar": "bar", 540 "baz": "baz", 541 "quux": "not-quux" 542 }, 543 "valid": false, 544 "skip": { 545 "v2": "could not compile schema", 546 "v3": "could not compile schema" 547 } 548 } 549 ] 550 }, 551 { 552 "description": "unevaluatedProperties with oneOf", 553 "schema": { 554 "$schema": "https://json-schema.org/draft/2020-12/schema", 555 "type": "object", 556 "properties": { 557 "foo": { 558 "type": "string" 559 } 560 }, 561 "oneOf": [ 562 { 563 "properties": { 564 "bar": { 565 "const": "bar" 566 } 567 }, 568 "required": [ 569 "bar" 570 ] 571 }, 572 { 573 "properties": { 574 "baz": { 575 "const": "baz" 576 } 577 }, 578 "required": [ 579 "baz" 580 ] 581 } 582 ], 583 "unevaluatedProperties": false 584 }, 585 "skip": { 586 "v2": "extract error: keyword \"unevaluatedProperties\" not yet implemented", 587 "v3": "extract error: keyword \"unevaluatedProperties\" not yet implemented" 588 }, 589 "tests": [ 590 { 591 "description": "with no unevaluated properties", 592 "data": { 593 "foo": "foo", 594 "bar": "bar" 595 }, 596 "valid": true, 597 "skip": { 598 "v2": "could not compile schema", 599 "v3": "could not compile schema" 600 } 601 }, 602 { 603 "description": "with unevaluated properties", 604 "data": { 605 "foo": "foo", 606 "bar": "bar", 607 "quux": "quux" 608 }, 609 "valid": false, 610 "skip": { 611 "v2": "could not compile schema", 612 "v3": "could not compile schema" 613 } 614 } 615 ] 616 }, 617 { 618 "description": "unevaluatedProperties with not", 619 "schema": { 620 "$schema": "https://json-schema.org/draft/2020-12/schema", 621 "type": "object", 622 "properties": { 623 "foo": { 624 "type": "string" 625 } 626 }, 627 "not": { 628 "not": { 629 "properties": { 630 "bar": { 631 "const": "bar" 632 } 633 }, 634 "required": [ 635 "bar" 636 ] 637 } 638 }, 639 "unevaluatedProperties": false 640 }, 641 "skip": { 642 "v2": "extract error: keyword \"unevaluatedProperties\" not yet implemented", 643 "v3": "extract error: keyword \"unevaluatedProperties\" not yet implemented" 644 }, 645 "tests": [ 646 { 647 "description": "with unevaluated properties", 648 "data": { 649 "foo": "foo", 650 "bar": "bar" 651 }, 652 "valid": false, 653 "skip": { 654 "v2": "could not compile schema", 655 "v3": "could not compile schema" 656 } 657 } 658 ] 659 }, 660 { 661 "description": "unevaluatedProperties with if/then/else", 662 "schema": { 663 "$schema": "https://json-schema.org/draft/2020-12/schema", 664 "type": "object", 665 "if": { 666 "properties": { 667 "foo": { 668 "const": "then" 669 } 670 }, 671 "required": [ 672 "foo" 673 ] 674 }, 675 "then": { 676 "properties": { 677 "bar": { 678 "type": "string" 679 } 680 }, 681 "required": [ 682 "bar" 683 ] 684 }, 685 "else": { 686 "properties": { 687 "baz": { 688 "type": "string" 689 } 690 }, 691 "required": [ 692 "baz" 693 ] 694 }, 695 "unevaluatedProperties": false 696 }, 697 "skip": { 698 "v2": "extract error: keyword \"unevaluatedProperties\" not yet implemented", 699 "v3": "extract error: keyword \"unevaluatedProperties\" not yet implemented" 700 }, 701 "tests": [ 702 { 703 "description": "when if is true and has no unevaluated properties", 704 "data": { 705 "foo": "then", 706 "bar": "bar" 707 }, 708 "valid": true, 709 "skip": { 710 "v2": "could not compile schema", 711 "v3": "could not compile schema" 712 } 713 }, 714 { 715 "description": "when if is true and has unevaluated properties", 716 "data": { 717 "foo": "then", 718 "bar": "bar", 719 "baz": "baz" 720 }, 721 "valid": false, 722 "skip": { 723 "v2": "could not compile schema", 724 "v3": "could not compile schema" 725 } 726 }, 727 { 728 "description": "when if is false and has no unevaluated properties", 729 "data": { 730 "baz": "baz" 731 }, 732 "valid": true, 733 "skip": { 734 "v2": "could not compile schema", 735 "v3": "could not compile schema" 736 } 737 }, 738 { 739 "description": "when if is false and has unevaluated properties", 740 "data": { 741 "foo": "else", 742 "baz": "baz" 743 }, 744 "valid": false, 745 "skip": { 746 "v2": "could not compile schema", 747 "v3": "could not compile schema" 748 } 749 } 750 ] 751 }, 752 { 753 "description": "unevaluatedProperties with if/then/else, then not defined", 754 "schema": { 755 "$schema": "https://json-schema.org/draft/2020-12/schema", 756 "type": "object", 757 "if": { 758 "properties": { 759 "foo": { 760 "const": "then" 761 } 762 }, 763 "required": [ 764 "foo" 765 ] 766 }, 767 "else": { 768 "properties": { 769 "baz": { 770 "type": "string" 771 } 772 }, 773 "required": [ 774 "baz" 775 ] 776 }, 777 "unevaluatedProperties": false 778 }, 779 "skip": { 780 "v2": "extract error: keyword \"unevaluatedProperties\" not yet implemented", 781 "v3": "extract error: keyword \"unevaluatedProperties\" not yet implemented" 782 }, 783 "tests": [ 784 { 785 "description": "when if is true and has no unevaluated properties", 786 "data": { 787 "foo": "then", 788 "bar": "bar" 789 }, 790 "valid": false, 791 "skip": { 792 "v2": "could not compile schema", 793 "v3": "could not compile schema" 794 } 795 }, 796 { 797 "description": "when if is true and has unevaluated properties", 798 "data": { 799 "foo": "then", 800 "bar": "bar", 801 "baz": "baz" 802 }, 803 "valid": false, 804 "skip": { 805 "v2": "could not compile schema", 806 "v3": "could not compile schema" 807 } 808 }, 809 { 810 "description": "when if is false and has no unevaluated properties", 811 "data": { 812 "baz": "baz" 813 }, 814 "valid": true, 815 "skip": { 816 "v2": "could not compile schema", 817 "v3": "could not compile schema" 818 } 819 }, 820 { 821 "description": "when if is false and has unevaluated properties", 822 "data": { 823 "foo": "else", 824 "baz": "baz" 825 }, 826 "valid": false, 827 "skip": { 828 "v2": "could not compile schema", 829 "v3": "could not compile schema" 830 } 831 } 832 ] 833 }, 834 { 835 "description": "unevaluatedProperties with if/then/else, else not defined", 836 "schema": { 837 "$schema": "https://json-schema.org/draft/2020-12/schema", 838 "type": "object", 839 "if": { 840 "properties": { 841 "foo": { 842 "const": "then" 843 } 844 }, 845 "required": [ 846 "foo" 847 ] 848 }, 849 "then": { 850 "properties": { 851 "bar": { 852 "type": "string" 853 } 854 }, 855 "required": [ 856 "bar" 857 ] 858 }, 859 "unevaluatedProperties": false 860 }, 861 "skip": { 862 "v2": "extract error: keyword \"unevaluatedProperties\" not yet implemented", 863 "v3": "extract error: keyword \"unevaluatedProperties\" not yet implemented" 864 }, 865 "tests": [ 866 { 867 "description": "when if is true and has no unevaluated properties", 868 "data": { 869 "foo": "then", 870 "bar": "bar" 871 }, 872 "valid": true, 873 "skip": { 874 "v2": "could not compile schema", 875 "v3": "could not compile schema" 876 } 877 }, 878 { 879 "description": "when if is true and has unevaluated properties", 880 "data": { 881 "foo": "then", 882 "bar": "bar", 883 "baz": "baz" 884 }, 885 "valid": false, 886 "skip": { 887 "v2": "could not compile schema", 888 "v3": "could not compile schema" 889 } 890 }, 891 { 892 "description": "when if is false and has no unevaluated properties", 893 "data": { 894 "baz": "baz" 895 }, 896 "valid": false, 897 "skip": { 898 "v2": "could not compile schema", 899 "v3": "could not compile schema" 900 } 901 }, 902 { 903 "description": "when if is false and has unevaluated properties", 904 "data": { 905 "foo": "else", 906 "baz": "baz" 907 }, 908 "valid": false, 909 "skip": { 910 "v2": "could not compile schema", 911 "v3": "could not compile schema" 912 } 913 } 914 ] 915 }, 916 { 917 "description": "unevaluatedProperties with dependentSchemas", 918 "schema": { 919 "$schema": "https://json-schema.org/draft/2020-12/schema", 920 "type": "object", 921 "properties": { 922 "foo": { 923 "type": "string" 924 } 925 }, 926 "dependentSchemas": { 927 "foo": { 928 "properties": { 929 "bar": { 930 "const": "bar" 931 } 932 }, 933 "required": [ 934 "bar" 935 ] 936 } 937 }, 938 "unevaluatedProperties": false 939 }, 940 "skip": { 941 "v2": "extract error: keyword \"dependentSchemas\" not yet implemented (and 1 more errors)", 942 "v3": "extract error: keyword \"dependentSchemas\" not yet implemented (and 1 more errors)" 943 }, 944 "tests": [ 945 { 946 "description": "with no unevaluated properties", 947 "data": { 948 "foo": "foo", 949 "bar": "bar" 950 }, 951 "valid": true, 952 "skip": { 953 "v2": "could not compile schema", 954 "v3": "could not compile schema" 955 } 956 }, 957 { 958 "description": "with unevaluated properties", 959 "data": { 960 "bar": "bar" 961 }, 962 "valid": false, 963 "skip": { 964 "v2": "could not compile schema", 965 "v3": "could not compile schema" 966 } 967 } 968 ] 969 }, 970 { 971 "description": "unevaluatedProperties with boolean schemas", 972 "schema": { 973 "$schema": "https://json-schema.org/draft/2020-12/schema", 974 "type": "object", 975 "properties": { 976 "foo": { 977 "type": "string" 978 } 979 }, 980 "allOf": [ 981 true 982 ], 983 "unevaluatedProperties": false 984 }, 985 "skip": { 986 "v2": "extract error: keyword \"unevaluatedProperties\" not yet implemented", 987 "v3": "extract error: keyword \"unevaluatedProperties\" not yet implemented" 988 }, 989 "tests": [ 990 { 991 "description": "with no unevaluated properties", 992 "data": { 993 "foo": "foo" 994 }, 995 "valid": true, 996 "skip": { 997 "v2": "could not compile schema", 998 "v3": "could not compile schema" 999 } 1000 }, 1001 { 1002 "description": "with unevaluated properties", 1003 "data": { 1004 "bar": "bar" 1005 }, 1006 "valid": false, 1007 "skip": { 1008 "v2": "could not compile schema", 1009 "v3": "could not compile schema" 1010 } 1011 } 1012 ] 1013 }, 1014 { 1015 "description": "unevaluatedProperties with $ref", 1016 "schema": { 1017 "$schema": "https://json-schema.org/draft/2020-12/schema", 1018 "type": "object", 1019 "$ref": "#/$defs/bar", 1020 "properties": { 1021 "foo": { 1022 "type": "string" 1023 } 1024 }, 1025 "unevaluatedProperties": false, 1026 "$defs": { 1027 "bar": { 1028 "properties": { 1029 "bar": { 1030 "type": "string" 1031 } 1032 } 1033 } 1034 } 1035 }, 1036 "skip": { 1037 "v2": "extract error: keyword \"unevaluatedProperties\" not yet implemented (and 1 more errors)", 1038 "v3": "extract error: keyword \"unevaluatedProperties\" not yet implemented (and 1 more errors)" 1039 }, 1040 "tests": [ 1041 { 1042 "description": "with no unevaluated properties", 1043 "data": { 1044 "foo": "foo", 1045 "bar": "bar" 1046 }, 1047 "valid": true, 1048 "skip": { 1049 "v2": "could not compile schema", 1050 "v3": "could not compile schema" 1051 } 1052 }, 1053 { 1054 "description": "with unevaluated properties", 1055 "data": { 1056 "foo": "foo", 1057 "bar": "bar", 1058 "baz": "baz" 1059 }, 1060 "valid": false, 1061 "skip": { 1062 "v2": "could not compile schema", 1063 "v3": "could not compile schema" 1064 } 1065 } 1066 ] 1067 }, 1068 { 1069 "description": "unevaluatedProperties before $ref", 1070 "schema": { 1071 "$schema": "https://json-schema.org/draft/2020-12/schema", 1072 "type": "object", 1073 "unevaluatedProperties": false, 1074 "properties": { 1075 "foo": { 1076 "type": "string" 1077 } 1078 }, 1079 "$ref": "#/$defs/bar", 1080 "$defs": { 1081 "bar": { 1082 "properties": { 1083 "bar": { 1084 "type": "string" 1085 } 1086 } 1087 } 1088 } 1089 }, 1090 "skip": { 1091 "v2": "extract error: keyword \"unevaluatedProperties\" not yet implemented (and 1 more errors)", 1092 "v3": "extract error: keyword \"unevaluatedProperties\" not yet implemented (and 1 more errors)" 1093 }, 1094 "tests": [ 1095 { 1096 "description": "with no unevaluated properties", 1097 "data": { 1098 "foo": "foo", 1099 "bar": "bar" 1100 }, 1101 "valid": true, 1102 "skip": { 1103 "v2": "could not compile schema", 1104 "v3": "could not compile schema" 1105 } 1106 }, 1107 { 1108 "description": "with unevaluated properties", 1109 "data": { 1110 "foo": "foo", 1111 "bar": "bar", 1112 "baz": "baz" 1113 }, 1114 "valid": false, 1115 "skip": { 1116 "v2": "could not compile schema", 1117 "v3": "could not compile schema" 1118 } 1119 } 1120 ] 1121 }, 1122 { 1123 "description": "unevaluatedProperties with $dynamicRef", 1124 "schema": { 1125 "$schema": "https://json-schema.org/draft/2020-12/schema", 1126 "$id": "https://example.com/unevaluated-properties-with-dynamic-ref/derived", 1127 "$ref": "./baseSchema", 1128 "$defs": { 1129 "derived": { 1130 "$dynamicAnchor": "addons", 1131 "properties": { 1132 "bar": { 1133 "type": "string" 1134 } 1135 } 1136 }, 1137 "baseSchema": { 1138 "$id": "./baseSchema", 1139 "$comment": "unevaluatedProperties comes first so it's more likely to catch bugs with implementations that are sensitive to keyword ordering", 1140 "unevaluatedProperties": false, 1141 "type": "object", 1142 "properties": { 1143 "foo": { 1144 "type": "string" 1145 } 1146 }, 1147 "$dynamicRef": "#addons", 1148 "$defs": { 1149 "defaultAddons": { 1150 "$comment": "Needed to satisfy the bookending requirement", 1151 "$dynamicAnchor": "addons" 1152 } 1153 } 1154 } 1155 } 1156 }, 1157 "skip": { 1158 "v2": "extract error: keyword \"$dynamicAnchor\" not yet implemented (and 7 more errors)", 1159 "v3": "extract error: keyword \"$dynamicAnchor\" not yet implemented (and 7 more errors)" 1160 }, 1161 "tests": [ 1162 { 1163 "description": "with no unevaluated properties", 1164 "data": { 1165 "foo": "foo", 1166 "bar": "bar" 1167 }, 1168 "valid": true, 1169 "skip": { 1170 "v2": "could not compile schema", 1171 "v3": "could not compile schema" 1172 } 1173 }, 1174 { 1175 "description": "with unevaluated properties", 1176 "data": { 1177 "foo": "foo", 1178 "bar": "bar", 1179 "baz": "baz" 1180 }, 1181 "valid": false, 1182 "skip": { 1183 "v2": "could not compile schema", 1184 "v3": "could not compile schema" 1185 } 1186 } 1187 ] 1188 }, 1189 { 1190 "description": "unevaluatedProperties can't see inside cousins", 1191 "schema": { 1192 "$schema": "https://json-schema.org/draft/2020-12/schema", 1193 "allOf": [ 1194 { 1195 "properties": { 1196 "foo": true 1197 } 1198 }, 1199 { 1200 "unevaluatedProperties": false 1201 } 1202 ] 1203 }, 1204 "skip": { 1205 "v2": "extract error: keyword \"unevaluatedProperties\" not yet implemented", 1206 "v3": "extract error: keyword \"unevaluatedProperties\" not yet implemented" 1207 }, 1208 "tests": [ 1209 { 1210 "description": "always fails", 1211 "data": { 1212 "foo": 1 1213 }, 1214 "valid": false, 1215 "skip": { 1216 "v2": "could not compile schema", 1217 "v3": "could not compile schema" 1218 } 1219 } 1220 ] 1221 }, 1222 { 1223 "description": "unevaluatedProperties can't see inside cousins (reverse order)", 1224 "schema": { 1225 "$schema": "https://json-schema.org/draft/2020-12/schema", 1226 "allOf": [ 1227 { 1228 "unevaluatedProperties": false 1229 }, 1230 { 1231 "properties": { 1232 "foo": true 1233 } 1234 } 1235 ] 1236 }, 1237 "skip": { 1238 "v2": "extract error: keyword \"unevaluatedProperties\" not yet implemented", 1239 "v3": "extract error: keyword \"unevaluatedProperties\" not yet implemented" 1240 }, 1241 "tests": [ 1242 { 1243 "description": "always fails", 1244 "data": { 1245 "foo": 1 1246 }, 1247 "valid": false, 1248 "skip": { 1249 "v2": "could not compile schema", 1250 "v3": "could not compile schema" 1251 } 1252 } 1253 ] 1254 }, 1255 { 1256 "description": "nested unevaluatedProperties, outer false, inner true, properties outside", 1257 "schema": { 1258 "$schema": "https://json-schema.org/draft/2020-12/schema", 1259 "type": "object", 1260 "properties": { 1261 "foo": { 1262 "type": "string" 1263 } 1264 }, 1265 "allOf": [ 1266 { 1267 "unevaluatedProperties": true 1268 } 1269 ], 1270 "unevaluatedProperties": false 1271 }, 1272 "skip": { 1273 "v2": "extract error: keyword \"unevaluatedProperties\" not yet implemented (and 1 more errors)", 1274 "v3": "extract error: keyword \"unevaluatedProperties\" not yet implemented (and 1 more errors)" 1275 }, 1276 "tests": [ 1277 { 1278 "description": "with no nested unevaluated properties", 1279 "data": { 1280 "foo": "foo" 1281 }, 1282 "valid": true, 1283 "skip": { 1284 "v2": "could not compile schema", 1285 "v3": "could not compile schema" 1286 } 1287 }, 1288 { 1289 "description": "with nested unevaluated properties", 1290 "data": { 1291 "foo": "foo", 1292 "bar": "bar" 1293 }, 1294 "valid": true, 1295 "skip": { 1296 "v2": "could not compile schema", 1297 "v3": "could not compile schema" 1298 } 1299 } 1300 ] 1301 }, 1302 { 1303 "description": "nested unevaluatedProperties, outer false, inner true, properties inside", 1304 "schema": { 1305 "$schema": "https://json-schema.org/draft/2020-12/schema", 1306 "type": "object", 1307 "allOf": [ 1308 { 1309 "properties": { 1310 "foo": { 1311 "type": "string" 1312 } 1313 }, 1314 "unevaluatedProperties": true 1315 } 1316 ], 1317 "unevaluatedProperties": false 1318 }, 1319 "skip": { 1320 "v2": "extract error: keyword \"unevaluatedProperties\" not yet implemented (and 1 more errors)", 1321 "v3": "extract error: keyword \"unevaluatedProperties\" not yet implemented (and 1 more errors)" 1322 }, 1323 "tests": [ 1324 { 1325 "description": "with no nested unevaluated properties", 1326 "data": { 1327 "foo": "foo" 1328 }, 1329 "valid": true, 1330 "skip": { 1331 "v2": "could not compile schema", 1332 "v3": "could not compile schema" 1333 } 1334 }, 1335 { 1336 "description": "with nested unevaluated properties", 1337 "data": { 1338 "foo": "foo", 1339 "bar": "bar" 1340 }, 1341 "valid": true, 1342 "skip": { 1343 "v2": "could not compile schema", 1344 "v3": "could not compile schema" 1345 } 1346 } 1347 ] 1348 }, 1349 { 1350 "description": "nested unevaluatedProperties, outer true, inner false, properties outside", 1351 "schema": { 1352 "$schema": "https://json-schema.org/draft/2020-12/schema", 1353 "type": "object", 1354 "properties": { 1355 "foo": { 1356 "type": "string" 1357 } 1358 }, 1359 "allOf": [ 1360 { 1361 "unevaluatedProperties": false 1362 } 1363 ], 1364 "unevaluatedProperties": true 1365 }, 1366 "skip": { 1367 "v2": "extract error: keyword \"unevaluatedProperties\" not yet implemented (and 1 more errors)", 1368 "v3": "extract error: keyword \"unevaluatedProperties\" not yet implemented (and 1 more errors)" 1369 }, 1370 "tests": [ 1371 { 1372 "description": "with no nested unevaluated properties", 1373 "data": { 1374 "foo": "foo" 1375 }, 1376 "valid": false, 1377 "skip": { 1378 "v2": "could not compile schema", 1379 "v3": "could not compile schema" 1380 } 1381 }, 1382 { 1383 "description": "with nested unevaluated properties", 1384 "data": { 1385 "foo": "foo", 1386 "bar": "bar" 1387 }, 1388 "valid": false, 1389 "skip": { 1390 "v2": "could not compile schema", 1391 "v3": "could not compile schema" 1392 } 1393 } 1394 ] 1395 }, 1396 { 1397 "description": "nested unevaluatedProperties, outer true, inner false, properties inside", 1398 "schema": { 1399 "$schema": "https://json-schema.org/draft/2020-12/schema", 1400 "type": "object", 1401 "allOf": [ 1402 { 1403 "properties": { 1404 "foo": { 1405 "type": "string" 1406 } 1407 }, 1408 "unevaluatedProperties": false 1409 } 1410 ], 1411 "unevaluatedProperties": true 1412 }, 1413 "skip": { 1414 "v2": "extract error: keyword \"unevaluatedProperties\" not yet implemented (and 1 more errors)", 1415 "v3": "extract error: keyword \"unevaluatedProperties\" not yet implemented (and 1 more errors)" 1416 }, 1417 "tests": [ 1418 { 1419 "description": "with no nested unevaluated properties", 1420 "data": { 1421 "foo": "foo" 1422 }, 1423 "valid": true, 1424 "skip": { 1425 "v2": "could not compile schema", 1426 "v3": "could not compile schema" 1427 } 1428 }, 1429 { 1430 "description": "with nested unevaluated properties", 1431 "data": { 1432 "foo": "foo", 1433 "bar": "bar" 1434 }, 1435 "valid": false, 1436 "skip": { 1437 "v2": "could not compile schema", 1438 "v3": "could not compile schema" 1439 } 1440 } 1441 ] 1442 }, 1443 { 1444 "description": "cousin unevaluatedProperties, true and false, true with properties", 1445 "schema": { 1446 "$schema": "https://json-schema.org/draft/2020-12/schema", 1447 "type": "object", 1448 "allOf": [ 1449 { 1450 "properties": { 1451 "foo": { 1452 "type": "string" 1453 } 1454 }, 1455 "unevaluatedProperties": true 1456 }, 1457 { 1458 "unevaluatedProperties": false 1459 } 1460 ] 1461 }, 1462 "skip": { 1463 "v2": "extract error: keyword \"unevaluatedProperties\" not yet implemented (and 1 more errors)", 1464 "v3": "extract error: keyword \"unevaluatedProperties\" not yet implemented (and 1 more errors)" 1465 }, 1466 "tests": [ 1467 { 1468 "description": "with no nested unevaluated properties", 1469 "data": { 1470 "foo": "foo" 1471 }, 1472 "valid": false, 1473 "skip": { 1474 "v2": "could not compile schema", 1475 "v3": "could not compile schema" 1476 } 1477 }, 1478 { 1479 "description": "with nested unevaluated properties", 1480 "data": { 1481 "foo": "foo", 1482 "bar": "bar" 1483 }, 1484 "valid": false, 1485 "skip": { 1486 "v2": "could not compile schema", 1487 "v3": "could not compile schema" 1488 } 1489 } 1490 ] 1491 }, 1492 { 1493 "description": "cousin unevaluatedProperties, true and false, false with properties", 1494 "schema": { 1495 "$schema": "https://json-schema.org/draft/2020-12/schema", 1496 "type": "object", 1497 "allOf": [ 1498 { 1499 "unevaluatedProperties": true 1500 }, 1501 { 1502 "properties": { 1503 "foo": { 1504 "type": "string" 1505 } 1506 }, 1507 "unevaluatedProperties": false 1508 } 1509 ] 1510 }, 1511 "skip": { 1512 "v2": "extract error: keyword \"unevaluatedProperties\" not yet implemented (and 1 more errors)", 1513 "v3": "extract error: keyword \"unevaluatedProperties\" not yet implemented (and 1 more errors)" 1514 }, 1515 "tests": [ 1516 { 1517 "description": "with no nested unevaluated properties", 1518 "data": { 1519 "foo": "foo" 1520 }, 1521 "valid": true, 1522 "skip": { 1523 "v2": "could not compile schema", 1524 "v3": "could not compile schema" 1525 } 1526 }, 1527 { 1528 "description": "with nested unevaluated properties", 1529 "data": { 1530 "foo": "foo", 1531 "bar": "bar" 1532 }, 1533 "valid": false, 1534 "skip": { 1535 "v2": "could not compile schema", 1536 "v3": "could not compile schema" 1537 } 1538 } 1539 ] 1540 }, 1541 { 1542 "description": "property is evaluated in an uncle schema to unevaluatedProperties", 1543 "comment": "see https://stackoverflow.com/questions/66936884/deeply-nested-unevaluatedproperties-and-their-expectations", 1544 "schema": { 1545 "$schema": "https://json-schema.org/draft/2020-12/schema", 1546 "type": "object", 1547 "properties": { 1548 "foo": { 1549 "type": "object", 1550 "properties": { 1551 "bar": { 1552 "type": "string" 1553 } 1554 }, 1555 "unevaluatedProperties": false 1556 } 1557 }, 1558 "anyOf": [ 1559 { 1560 "properties": { 1561 "foo": { 1562 "properties": { 1563 "faz": { 1564 "type": "string" 1565 } 1566 } 1567 } 1568 } 1569 } 1570 ] 1571 }, 1572 "skip": { 1573 "v2": "extract error: keyword \"unevaluatedProperties\" not yet implemented", 1574 "v3": "extract error: keyword \"unevaluatedProperties\" not yet implemented" 1575 }, 1576 "tests": [ 1577 { 1578 "description": "no extra properties", 1579 "data": { 1580 "foo": { 1581 "bar": "test" 1582 } 1583 }, 1584 "valid": true, 1585 "skip": { 1586 "v2": "could not compile schema", 1587 "v3": "could not compile schema" 1588 } 1589 }, 1590 { 1591 "description": "uncle keyword evaluation is not significant", 1592 "data": { 1593 "foo": { 1594 "bar": "test", 1595 "faz": "test" 1596 } 1597 }, 1598 "valid": false, 1599 "skip": { 1600 "v2": "could not compile schema", 1601 "v3": "could not compile schema" 1602 } 1603 } 1604 ] 1605 }, 1606 { 1607 "description": "in-place applicator siblings, allOf has unevaluated", 1608 "schema": { 1609 "$schema": "https://json-schema.org/draft/2020-12/schema", 1610 "type": "object", 1611 "allOf": [ 1612 { 1613 "properties": { 1614 "foo": true 1615 }, 1616 "unevaluatedProperties": false 1617 } 1618 ], 1619 "anyOf": [ 1620 { 1621 "properties": { 1622 "bar": true 1623 } 1624 } 1625 ] 1626 }, 1627 "skip": { 1628 "v2": "extract error: keyword \"unevaluatedProperties\" not yet implemented", 1629 "v3": "extract error: keyword \"unevaluatedProperties\" not yet implemented" 1630 }, 1631 "tests": [ 1632 { 1633 "description": "base case: both properties present", 1634 "data": { 1635 "foo": 1, 1636 "bar": 1 1637 }, 1638 "valid": false, 1639 "skip": { 1640 "v2": "could not compile schema", 1641 "v3": "could not compile schema" 1642 } 1643 }, 1644 { 1645 "description": "in place applicator siblings, bar is missing", 1646 "data": { 1647 "foo": 1 1648 }, 1649 "valid": true, 1650 "skip": { 1651 "v2": "could not compile schema", 1652 "v3": "could not compile schema" 1653 } 1654 }, 1655 { 1656 "description": "in place applicator siblings, foo is missing", 1657 "data": { 1658 "bar": 1 1659 }, 1660 "valid": false, 1661 "skip": { 1662 "v2": "could not compile schema", 1663 "v3": "could not compile schema" 1664 } 1665 } 1666 ] 1667 }, 1668 { 1669 "description": "in-place applicator siblings, anyOf has unevaluated", 1670 "schema": { 1671 "$schema": "https://json-schema.org/draft/2020-12/schema", 1672 "type": "object", 1673 "allOf": [ 1674 { 1675 "properties": { 1676 "foo": true 1677 } 1678 } 1679 ], 1680 "anyOf": [ 1681 { 1682 "properties": { 1683 "bar": true 1684 }, 1685 "unevaluatedProperties": false 1686 } 1687 ] 1688 }, 1689 "skip": { 1690 "v2": "extract error: keyword \"unevaluatedProperties\" not yet implemented", 1691 "v3": "extract error: keyword \"unevaluatedProperties\" not yet implemented" 1692 }, 1693 "tests": [ 1694 { 1695 "description": "base case: both properties present", 1696 "data": { 1697 "foo": 1, 1698 "bar": 1 1699 }, 1700 "valid": false, 1701 "skip": { 1702 "v2": "could not compile schema", 1703 "v3": "could not compile schema" 1704 } 1705 }, 1706 { 1707 "description": "in place applicator siblings, bar is missing", 1708 "data": { 1709 "foo": 1 1710 }, 1711 "valid": false, 1712 "skip": { 1713 "v2": "could not compile schema", 1714 "v3": "could not compile schema" 1715 } 1716 }, 1717 { 1718 "description": "in place applicator siblings, foo is missing", 1719 "data": { 1720 "bar": 1 1721 }, 1722 "valid": true, 1723 "skip": { 1724 "v2": "could not compile schema", 1725 "v3": "could not compile schema" 1726 } 1727 } 1728 ] 1729 }, 1730 { 1731 "description": "unevaluatedProperties + single cyclic ref", 1732 "schema": { 1733 "$schema": "https://json-schema.org/draft/2020-12/schema", 1734 "type": "object", 1735 "properties": { 1736 "x": { 1737 "$ref": "#" 1738 } 1739 }, 1740 "unevaluatedProperties": false 1741 }, 1742 "skip": { 1743 "v2": "extract error: keyword \"unevaluatedProperties\" not yet implemented", 1744 "v3": "extract error: keyword \"unevaluatedProperties\" not yet implemented" 1745 }, 1746 "tests": [ 1747 { 1748 "description": "Empty is valid", 1749 "data": {}, 1750 "valid": true, 1751 "skip": { 1752 "v2": "could not compile schema", 1753 "v3": "could not compile schema" 1754 } 1755 }, 1756 { 1757 "description": "Single is valid", 1758 "data": { 1759 "x": {} 1760 }, 1761 "valid": true, 1762 "skip": { 1763 "v2": "could not compile schema", 1764 "v3": "could not compile schema" 1765 } 1766 }, 1767 { 1768 "description": "Unevaluated on 1st level is invalid", 1769 "data": { 1770 "x": {}, 1771 "y": {} 1772 }, 1773 "valid": false, 1774 "skip": { 1775 "v2": "could not compile schema", 1776 "v3": "could not compile schema" 1777 } 1778 }, 1779 { 1780 "description": "Nested is valid", 1781 "data": { 1782 "x": { 1783 "x": {} 1784 } 1785 }, 1786 "valid": true, 1787 "skip": { 1788 "v2": "could not compile schema", 1789 "v3": "could not compile schema" 1790 } 1791 }, 1792 { 1793 "description": "Unevaluated on 2nd level is invalid", 1794 "data": { 1795 "x": { 1796 "x": {}, 1797 "y": {} 1798 } 1799 }, 1800 "valid": false, 1801 "skip": { 1802 "v2": "could not compile schema", 1803 "v3": "could not compile schema" 1804 } 1805 }, 1806 { 1807 "description": "Deep nested is valid", 1808 "data": { 1809 "x": { 1810 "x": { 1811 "x": {} 1812 } 1813 } 1814 }, 1815 "valid": true, 1816 "skip": { 1817 "v2": "could not compile schema", 1818 "v3": "could not compile schema" 1819 } 1820 }, 1821 { 1822 "description": "Unevaluated on 3rd level is invalid", 1823 "data": { 1824 "x": { 1825 "x": { 1826 "x": {}, 1827 "y": {} 1828 } 1829 } 1830 }, 1831 "valid": false, 1832 "skip": { 1833 "v2": "could not compile schema", 1834 "v3": "could not compile schema" 1835 } 1836 } 1837 ] 1838 }, 1839 { 1840 "description": "unevaluatedProperties + ref inside allOf / oneOf", 1841 "schema": { 1842 "$schema": "https://json-schema.org/draft/2020-12/schema", 1843 "$defs": { 1844 "one": { 1845 "properties": { 1846 "a": true 1847 } 1848 }, 1849 "two": { 1850 "required": [ 1851 "x" 1852 ], 1853 "properties": { 1854 "x": true 1855 } 1856 } 1857 }, 1858 "allOf": [ 1859 { 1860 "$ref": "#/$defs/one" 1861 }, 1862 { 1863 "properties": { 1864 "b": true 1865 } 1866 }, 1867 { 1868 "oneOf": [ 1869 { 1870 "$ref": "#/$defs/two" 1871 }, 1872 { 1873 "required": [ 1874 "y" 1875 ], 1876 "properties": { 1877 "y": true 1878 } 1879 } 1880 ] 1881 } 1882 ], 1883 "unevaluatedProperties": false 1884 }, 1885 "skip": { 1886 "v2": "extract error: keyword \"unevaluatedProperties\" not yet implemented (and 1 more errors)", 1887 "v3": "extract error: keyword \"unevaluatedProperties\" not yet implemented (and 1 more errors)" 1888 }, 1889 "tests": [ 1890 { 1891 "description": "Empty is invalid (no x or y)", 1892 "data": {}, 1893 "valid": false, 1894 "skip": { 1895 "v2": "could not compile schema", 1896 "v3": "could not compile schema" 1897 } 1898 }, 1899 { 1900 "description": "a and b are invalid (no x or y)", 1901 "data": { 1902 "a": 1, 1903 "b": 1 1904 }, 1905 "valid": false, 1906 "skip": { 1907 "v2": "could not compile schema", 1908 "v3": "could not compile schema" 1909 } 1910 }, 1911 { 1912 "description": "x and y are invalid", 1913 "data": { 1914 "x": 1, 1915 "y": 1 1916 }, 1917 "valid": false, 1918 "skip": { 1919 "v2": "could not compile schema", 1920 "v3": "could not compile schema" 1921 } 1922 }, 1923 { 1924 "description": "a and x are valid", 1925 "data": { 1926 "a": 1, 1927 "x": 1 1928 }, 1929 "valid": true, 1930 "skip": { 1931 "v2": "could not compile schema", 1932 "v3": "could not compile schema" 1933 } 1934 }, 1935 { 1936 "description": "a and y are valid", 1937 "data": { 1938 "a": 1, 1939 "y": 1 1940 }, 1941 "valid": true, 1942 "skip": { 1943 "v2": "could not compile schema", 1944 "v3": "could not compile schema" 1945 } 1946 }, 1947 { 1948 "description": "a and b and x are valid", 1949 "data": { 1950 "a": 1, 1951 "b": 1, 1952 "x": 1 1953 }, 1954 "valid": true, 1955 "skip": { 1956 "v2": "could not compile schema", 1957 "v3": "could not compile schema" 1958 } 1959 }, 1960 { 1961 "description": "a and b and y are valid", 1962 "data": { 1963 "a": 1, 1964 "b": 1, 1965 "y": 1 1966 }, 1967 "valid": true, 1968 "skip": { 1969 "v2": "could not compile schema", 1970 "v3": "could not compile schema" 1971 } 1972 }, 1973 { 1974 "description": "a and b and x and y are invalid", 1975 "data": { 1976 "a": 1, 1977 "b": 1, 1978 "x": 1, 1979 "y": 1 1980 }, 1981 "valid": false, 1982 "skip": { 1983 "v2": "could not compile schema", 1984 "v3": "could not compile schema" 1985 } 1986 } 1987 ] 1988 }, 1989 { 1990 "description": "dynamic evalation inside nested refs", 1991 "schema": { 1992 "$schema": "https://json-schema.org/draft/2020-12/schema", 1993 "$defs": { 1994 "one": { 1995 "oneOf": [ 1996 { 1997 "$ref": "#/$defs/two" 1998 }, 1999 { 2000 "required": [ 2001 "b" 2002 ], 2003 "properties": { 2004 "b": true 2005 } 2006 }, 2007 { 2008 "required": [ 2009 "xx" 2010 ], 2011 "patternProperties": { 2012 "x": true 2013 } 2014 }, 2015 { 2016 "required": [ 2017 "all" 2018 ], 2019 "unevaluatedProperties": true 2020 } 2021 ] 2022 }, 2023 "two": { 2024 "oneOf": [ 2025 { 2026 "required": [ 2027 "c" 2028 ], 2029 "properties": { 2030 "c": true 2031 } 2032 }, 2033 { 2034 "required": [ 2035 "d" 2036 ], 2037 "properties": { 2038 "d": true 2039 } 2040 } 2041 ] 2042 } 2043 }, 2044 "oneOf": [ 2045 { 2046 "$ref": "#/$defs/one" 2047 }, 2048 { 2049 "required": [ 2050 "a" 2051 ], 2052 "properties": { 2053 "a": true 2054 } 2055 } 2056 ], 2057 "unevaluatedProperties": false 2058 }, 2059 "skip": { 2060 "v2": "extract error: keyword \"unevaluatedProperties\" not yet implemented (and 3 more errors)", 2061 "v3": "extract error: keyword \"unevaluatedProperties\" not yet implemented (and 3 more errors)" 2062 }, 2063 "tests": [ 2064 { 2065 "description": "Empty is invalid", 2066 "data": {}, 2067 "valid": false, 2068 "skip": { 2069 "v2": "could not compile schema", 2070 "v3": "could not compile schema" 2071 } 2072 }, 2073 { 2074 "description": "a is valid", 2075 "data": { 2076 "a": 1 2077 }, 2078 "valid": true, 2079 "skip": { 2080 "v2": "could not compile schema", 2081 "v3": "could not compile schema" 2082 } 2083 }, 2084 { 2085 "description": "b is valid", 2086 "data": { 2087 "b": 1 2088 }, 2089 "valid": true, 2090 "skip": { 2091 "v2": "could not compile schema", 2092 "v3": "could not compile schema" 2093 } 2094 }, 2095 { 2096 "description": "c is valid", 2097 "data": { 2098 "c": 1 2099 }, 2100 "valid": true, 2101 "skip": { 2102 "v2": "could not compile schema", 2103 "v3": "could not compile schema" 2104 } 2105 }, 2106 { 2107 "description": "d is valid", 2108 "data": { 2109 "d": 1 2110 }, 2111 "valid": true, 2112 "skip": { 2113 "v2": "could not compile schema", 2114 "v3": "could not compile schema" 2115 } 2116 }, 2117 { 2118 "description": "a + b is invalid", 2119 "data": { 2120 "a": 1, 2121 "b": 1 2122 }, 2123 "valid": false, 2124 "skip": { 2125 "v2": "could not compile schema", 2126 "v3": "could not compile schema" 2127 } 2128 }, 2129 { 2130 "description": "a + c is invalid", 2131 "data": { 2132 "a": 1, 2133 "c": 1 2134 }, 2135 "valid": false, 2136 "skip": { 2137 "v2": "could not compile schema", 2138 "v3": "could not compile schema" 2139 } 2140 }, 2141 { 2142 "description": "a + d is invalid", 2143 "data": { 2144 "a": 1, 2145 "d": 1 2146 }, 2147 "valid": false, 2148 "skip": { 2149 "v2": "could not compile schema", 2150 "v3": "could not compile schema" 2151 } 2152 }, 2153 { 2154 "description": "b + c is invalid", 2155 "data": { 2156 "b": 1, 2157 "c": 1 2158 }, 2159 "valid": false, 2160 "skip": { 2161 "v2": "could not compile schema", 2162 "v3": "could not compile schema" 2163 } 2164 }, 2165 { 2166 "description": "b + d is invalid", 2167 "data": { 2168 "b": 1, 2169 "d": 1 2170 }, 2171 "valid": false, 2172 "skip": { 2173 "v2": "could not compile schema", 2174 "v3": "could not compile schema" 2175 } 2176 }, 2177 { 2178 "description": "c + d is invalid", 2179 "data": { 2180 "c": 1, 2181 "d": 1 2182 }, 2183 "valid": false, 2184 "skip": { 2185 "v2": "could not compile schema", 2186 "v3": "could not compile schema" 2187 } 2188 }, 2189 { 2190 "description": "xx is valid", 2191 "data": { 2192 "xx": 1 2193 }, 2194 "valid": true, 2195 "skip": { 2196 "v2": "could not compile schema", 2197 "v3": "could not compile schema" 2198 } 2199 }, 2200 { 2201 "description": "xx + foox is valid", 2202 "data": { 2203 "xx": 1, 2204 "foox": 1 2205 }, 2206 "valid": true, 2207 "skip": { 2208 "v2": "could not compile schema", 2209 "v3": "could not compile schema" 2210 } 2211 }, 2212 { 2213 "description": "xx + foo is invalid", 2214 "data": { 2215 "xx": 1, 2216 "foo": 1 2217 }, 2218 "valid": false, 2219 "skip": { 2220 "v2": "could not compile schema", 2221 "v3": "could not compile schema" 2222 } 2223 }, 2224 { 2225 "description": "xx + a is invalid", 2226 "data": { 2227 "xx": 1, 2228 "a": 1 2229 }, 2230 "valid": false, 2231 "skip": { 2232 "v2": "could not compile schema", 2233 "v3": "could not compile schema" 2234 } 2235 }, 2236 { 2237 "description": "xx + b is invalid", 2238 "data": { 2239 "xx": 1, 2240 "b": 1 2241 }, 2242 "valid": false, 2243 "skip": { 2244 "v2": "could not compile schema", 2245 "v3": "could not compile schema" 2246 } 2247 }, 2248 { 2249 "description": "xx + c is invalid", 2250 "data": { 2251 "xx": 1, 2252 "c": 1 2253 }, 2254 "valid": false, 2255 "skip": { 2256 "v2": "could not compile schema", 2257 "v3": "could not compile schema" 2258 } 2259 }, 2260 { 2261 "description": "xx + d is invalid", 2262 "data": { 2263 "xx": 1, 2264 "d": 1 2265 }, 2266 "valid": false, 2267 "skip": { 2268 "v2": "could not compile schema", 2269 "v3": "could not compile schema" 2270 } 2271 }, 2272 { 2273 "description": "all is valid", 2274 "data": { 2275 "all": 1 2276 }, 2277 "valid": true, 2278 "skip": { 2279 "v2": "could not compile schema", 2280 "v3": "could not compile schema" 2281 } 2282 }, 2283 { 2284 "description": "all + foo is valid", 2285 "data": { 2286 "all": 1, 2287 "foo": 1 2288 }, 2289 "valid": true, 2290 "skip": { 2291 "v2": "could not compile schema", 2292 "v3": "could not compile schema" 2293 } 2294 }, 2295 { 2296 "description": "all + a is invalid", 2297 "data": { 2298 "all": 1, 2299 "a": 1 2300 }, 2301 "valid": false, 2302 "skip": { 2303 "v2": "could not compile schema", 2304 "v3": "could not compile schema" 2305 } 2306 } 2307 ] 2308 }, 2309 { 2310 "description": "non-object instances are valid", 2311 "schema": { 2312 "$schema": "https://json-schema.org/draft/2020-12/schema", 2313 "unevaluatedProperties": false 2314 }, 2315 "skip": { 2316 "v2": "extract error: keyword \"unevaluatedProperties\" not yet implemented", 2317 "v3": "extract error: keyword \"unevaluatedProperties\" not yet implemented" 2318 }, 2319 "tests": [ 2320 { 2321 "description": "ignores booleans", 2322 "data": true, 2323 "valid": true, 2324 "skip": { 2325 "v2": "could not compile schema", 2326 "v3": "could not compile schema" 2327 } 2328 }, 2329 { 2330 "description": "ignores integers", 2331 "data": 123, 2332 "valid": true, 2333 "skip": { 2334 "v2": "could not compile schema", 2335 "v3": "could not compile schema" 2336 } 2337 }, 2338 { 2339 "description": "ignores floats", 2340 "data": 1.0, 2341 "valid": true, 2342 "skip": { 2343 "v2": "could not compile schema", 2344 "v3": "could not compile schema" 2345 } 2346 }, 2347 { 2348 "description": "ignores arrays", 2349 "data": [], 2350 "valid": true, 2351 "skip": { 2352 "v2": "could not compile schema", 2353 "v3": "could not compile schema" 2354 } 2355 }, 2356 { 2357 "description": "ignores strings", 2358 "data": "foo", 2359 "valid": true, 2360 "skip": { 2361 "v2": "could not compile schema", 2362 "v3": "could not compile schema" 2363 } 2364 }, 2365 { 2366 "description": "ignores null", 2367 "data": null, 2368 "valid": true, 2369 "skip": { 2370 "v2": "could not compile schema", 2371 "v3": "could not compile schema" 2372 } 2373 } 2374 ] 2375 }, 2376 { 2377 "description": "unevaluatedProperties with null valued instance properties", 2378 "schema": { 2379 "$schema": "https://json-schema.org/draft/2020-12/schema", 2380 "unevaluatedProperties": { 2381 "type": "null" 2382 } 2383 }, 2384 "skip": { 2385 "v2": "extract error: keyword \"unevaluatedProperties\" not yet implemented", 2386 "v3": "extract error: keyword \"unevaluatedProperties\" not yet implemented" 2387 }, 2388 "tests": [ 2389 { 2390 "description": "allows null valued properties", 2391 "data": { 2392 "foo": null 2393 }, 2394 "valid": true, 2395 "skip": { 2396 "v2": "could not compile schema", 2397 "v3": "could not compile schema" 2398 } 2399 } 2400 ] 2401 }, 2402 { 2403 "description": "unevaluatedProperties not affected by propertyNames", 2404 "schema": { 2405 "$schema": "https://json-schema.org/draft/2020-12/schema", 2406 "propertyNames": { 2407 "maxLength": 1 2408 }, 2409 "unevaluatedProperties": { 2410 "type": "number" 2411 } 2412 }, 2413 "skip": { 2414 "v2": "extract error: keyword \"unevaluatedProperties\" not yet implemented", 2415 "v3": "extract error: keyword \"unevaluatedProperties\" not yet implemented" 2416 }, 2417 "tests": [ 2418 { 2419 "description": "allows only number properties", 2420 "data": { 2421 "a": 1 2422 }, 2423 "valid": true, 2424 "skip": { 2425 "v2": "could not compile schema", 2426 "v3": "could not compile schema" 2427 } 2428 }, 2429 { 2430 "description": "string property is invalid", 2431 "data": { 2432 "a": "b" 2433 }, 2434 "valid": false, 2435 "skip": { 2436 "v2": "could not compile schema", 2437 "v3": "could not compile schema" 2438 } 2439 } 2440 ] 2441 }, 2442 { 2443 "description": "unevaluatedProperties can see annotations from if without then and else", 2444 "schema": { 2445 "$schema": "https://json-schema.org/draft/2020-12/schema", 2446 "if": { 2447 "patternProperties": { 2448 "foo": { 2449 "type": "string" 2450 } 2451 } 2452 }, 2453 "unevaluatedProperties": false 2454 }, 2455 "skip": { 2456 "v2": "extract error: keyword \"unevaluatedProperties\" not yet implemented", 2457 "v3": "extract error: keyword \"unevaluatedProperties\" not yet implemented" 2458 }, 2459 "tests": [ 2460 { 2461 "description": "valid in case if is evaluated", 2462 "data": { 2463 "foo": "a" 2464 }, 2465 "valid": true, 2466 "skip": { 2467 "v2": "could not compile schema", 2468 "v3": "could not compile schema" 2469 } 2470 }, 2471 { 2472 "description": "invalid in case if is evaluated", 2473 "data": { 2474 "bar": "a" 2475 }, 2476 "valid": false, 2477 "skip": { 2478 "v2": "could not compile schema", 2479 "v3": "could not compile schema" 2480 } 2481 } 2482 ] 2483 }, 2484 { 2485 "description": "dependentSchemas with unevaluatedProperties", 2486 "schema": { 2487 "$schema": "https://json-schema.org/draft/2020-12/schema", 2488 "properties": { 2489 "foo2": {} 2490 }, 2491 "dependentSchemas": { 2492 "foo": {}, 2493 "foo2": { 2494 "properties": { 2495 "bar": {} 2496 } 2497 } 2498 }, 2499 "unevaluatedProperties": false 2500 }, 2501 "skip": { 2502 "v2": "extract error: keyword \"dependentSchemas\" not yet implemented (and 1 more errors)", 2503 "v3": "extract error: keyword \"dependentSchemas\" not yet implemented (and 1 more errors)" 2504 }, 2505 "tests": [ 2506 { 2507 "description": "unevaluatedProperties doesn't consider dependentSchemas", 2508 "data": { 2509 "foo": "" 2510 }, 2511 "valid": false, 2512 "skip": { 2513 "v2": "could not compile schema", 2514 "v3": "could not compile schema" 2515 } 2516 }, 2517 { 2518 "description": "unevaluatedProperties doesn't see bar when foo2 is absent", 2519 "data": { 2520 "bar": "" 2521 }, 2522 "valid": false, 2523 "skip": { 2524 "v2": "could not compile schema", 2525 "v3": "could not compile schema" 2526 } 2527 }, 2528 { 2529 "description": "unevaluatedProperties sees bar when foo2 is present", 2530 "data": { 2531 "foo2": "", 2532 "bar": "" 2533 }, 2534 "valid": true, 2535 "skip": { 2536 "v2": "could not compile schema", 2537 "v3": "could not compile schema" 2538 } 2539 } 2540 ] 2541 } 2542 ]